最近一直在做电子商务方面的项目,包括买家和卖家后台 分别在seller.com 和buyer.com 还有前台www.xxx.com
其中有一个查看商品二级分类的下拉框 需要查询 当时没有考虑到这三个项目都会用到 就放到了前台的代码中,后台需求的变化,卖家和买家后台也要用到这个接口
由于初始化前台页面的时候是用ajax的方式初始化这个下拉框的,所以其他的平台的调用也想到了这个问题,紧接着就遇到ajax跨域的问题 ,下面来提供解决的方法。
下面是action的代码 由三个系统共同调用
- public class HeadAction extends BaseAction{
-
- private HttpServletRequest request;
- private HttpServletResponse response;
- public void findSecondCat(){
- ActionContext ctx = ActionContext.getContext();
- request = (HttpServletRequest) ctx.get(ServletActionContext.HTTP_REQUEST);
- response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
-
- response.setContentType("text/json;charset=utf-8");
- String catType = request.getParameter("catType");
- List<CategoryNode> node = CategoryCache.getAllCategoryNodes(1, Integer.parseInt(catType));
- try {
- PrintWriter out = response.getWriter();
- JSONArray ja = new JSONArray();
- for(CategoryNode c: node){
- JSONObject j = new JSONObject();
- j.put("id", c.ID);
- j.put("name", c.Name);
- ja.add(j);
- }
-
- String cb = request.getParameter("callback");
- if(cb != null){
- StringBuffer sb = new StringBuffer(cb);
- sb.append("(");
- sb.append(ja.toString());
- sb.append(")");
- out.write(sb.toString());
- out.close();
- }else{
- out.write(ja.toString());
- out.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
- }
下面是js代码
- $.ajax( {
- type : 'get',
- url : '<%=com.utils.PubConstant.wwwDomain %>/index/findSecondCat.action',
- data : {
- catType : 1
- },
- dataType : 'jsonp',
- error : function() {
- },
- success : function(data) {
- innerOption = "<option value=''>全部分类</option>";
- for(var i=0;i<data.length;i++){
- innerOption += '<option value="'+data[i].id+'">'+data[i].name+'</option>';
- };
- $('#secondCatIdId').html(innerOption);
- $("#lang, #secondCatIdId").jListbox();
- }
- });
这样就可以跨域进行ajax请求了。
分享到:
相关推荐
jQuery跨域调用主要是通过JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)这两种机制来实现的。JSONP是一种非官方的跨域数据交互协议,而CORS是W3C标准,允许服务器声明哪些来源可以访问其资源...
**Ajax跨域请求问题与jQuery JSONP解析** 在Web开发中,Ajax技术被广泛用于实现页面的异步更新,但浏览器的同源策略(Same-Origin Policy)限制了Ajax请求只能向同源(协议、域名、端口均相同)的服务器发送。这在...
总之,jQuery提供了一种简单易用的方式来处理跨域Ajax请求,无论是通过JSONP还是CORS。理解并熟练掌握这些技术,对于构建现代Web应用至关重要。在实际项目中,根据具体需求和安全考虑选择合适的方法,确保数据能够...
1. **jQuery的Ajax设置**:在使用Ajax进行跨域请求时,我们需要在`$.ajax()`方法中设置`dataType: 'jsonp'`。这告诉jQuery我们期望服务器返回JSON格式的数据,并通过JSONP机制来处理。 2. **JSONP原理**:JSONP的...
在JavaScript的世界里,由于同源策略的限制,浏览器禁止了不同源之间进行AJAX通信,但JSONP(JSON with Padding)作为一种巧妙的方式,允许我们绕过这个限制,实现在jQuery中进行跨域请求。本篇文章将深入探讨JSONP...
以下是实现AJAX跨域调用WCF服务的具体步骤和相关知识点: 1. **开启WCF服务的跨域支持**:在WCF服务的配置文件(通常是ServiceName.svc.cs或IServiceName.cs)中,需要启用跨域资源共享(CORS)。这可以通过添加`...
JQuery Ajax技术在Web开发中应用广泛,其中,跨域调用与非跨域调用是开发人员经常遇到的问题。本文将详细介绍JQuery Ajax在跨域调用和非跨域调用中的一些实现技巧和操作注意事项,以便大家更好地应用。 首先,我们...
JSONP(JSON with Padding)是一种跨域数据交互协议,它...这个过程涉及到的知识点包括:JSONP工作原理、Jquery的ajax方法、跨域请求、URL编码以及API调用等。理解这些知识点对于进行前端开发和与各种API交互至关重要。
今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友
4. AJAX跨域: AJAX本身不支持跨域,但是通过CORS(Cross-Origin Resource Sharing,跨源资源共享)机制,可以实现AJAX的跨域请求。服务器需要在响应头中添加`Access-Control-Allow-Origin`字段,允许指定的源进行...
本文将详细介绍JSONP的工作原理以及如何在ASP.NET网站开发中应用JSONP解决Ajax跨域问题。 首先,理解JSONP的基本概念。JSONP是一种非官方的数据交换格式,它的核心思想是利用HTML中的`<script>`标签不受同源策略...
Ajax跨域调用是Web开发中一个常见的问题。当一个Web应用需要从不同的域名下获取数据时,就会遇到浏览器同源策略的限制。同源策略要求在浏览器中运行的脚本只能与和它相同的源交互,其中源包括协议、域名和端口号。当...
本文将详细解释如何利用jQuery通过JSONP(JSON with Padding)的方式实现跨域调用WebService。 #### 1. JSONP 的基本原理 JSONP 是一种解决跨域请求的有效手段,它通过动态创建`<script>`标签来请求跨域的数据,并...
在本实例中,“ajax跨域调用wcf”是指通过Ajax技术实现对WCF服务的跨域请求。 **什么是Ajax跨域?** 在同源策略限制下,JavaScript通常不能访问不同源(协议、域名或端口不同)的资源。然而,为了实现Web应用的灵活...
### ASP.NET配合jQuery解决跨域调用的问题 #### 跨域问题概述 在现代Web开发中,跨域问题是一个常见的安全限制机制。浏览器为了保护用户的隐私数据,实施了同源策略(Same-origin policy)。该政策规定,来自不...
**三、JQuery的AJAX跨域** JQuery的$.ajax()函数支持JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)两种跨域方式。 1. **JSONP**:JSONP是一种规避同源策略的方式,它通过动态插入`<script>`...
【AJAX跨域解决办法】 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下更新部分网页的技术。然而,由于浏览器的同源策略限制,AJAX请求通常只能发送到与当前页面同一源的...
jsonp 解决的是跨域 ajax 调用的问题。为什么要跨域 ajax 调用呢?这样可以在一个应用中直接在前端通过 js 调用另外一个应用(在不同的域名下)的 API。我们在实际应用中也用到了 jsonp ,但之前只知道 jsonp 的一个...
本文将详细介绍JQuery、ajax以及jsonp跨域访问的知识。 首先,jQuery作为一个广泛使用的JavaScript库,其提供的ajax方法极大地简化了HTTP通信操作。然而,当尝试通过ajax访问不同域下的资源时,就会遇到跨域限制...
5. **跨域请求**:`jsonp`和`CORS`可以用来处理跨域Ajax请求。 **六、示例代码** 在"JQuery实战2:功能表单 - JQuery - AJAX - JavaEye论坛.files"这个压缩包中,可能包含了相关的代码示例和论坛讨论,你可以下载...