ajax跨域请求下parsererror错误

ainihunji 2016-05-20 11:27:06
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
</script>
<script type="text/javascript">
jQuery(document).ready(function() {
$.ajax({
type: "get",
async: false,
data: {},
url: "http://zxy3318.imwork.net:9000/interface/huizhan/ordershop",
dataType: "jsonp",
jsonp: "callback",
success: function(json) {
console.log(json);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}

});

});
</script>
...全文
524 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
foo1st 2016-05-26
  • 打赏
  • 举报
回复
使用代理啊,ajax调用本地controller,本地controller调用httpclient请求远程
ainihunji 2016-05-20
  • 打赏
  • 举报
回复
请问,有什么解决方法吗?
slwsss 2016-05-20
  • 打赏
  • 举报
回复
不支持jsonp 做代理
ainihunji 2016-05-20
  • 打赏
  • 举报
回复
]

引用 3 楼 showbo 的回复:
用yql将跨域数据转为就jsonp的。。
JSONP跨域访问在线代理API

试了<script type="text/javascript" src="http://www.coding123.net/rardownload/20130106/20130106170832648.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql',
dataType: 'jsonp',
data: {
q: "select * from json where url=\"http://zxy3318.imwork.net:9000/interface/huizhan/ordershop\"",
format: "json"
},
success: function (d) {
alert(JSON.stringify(d))//远程json数据放在query.results下
}
});</script>


这个也不行
Go 旅城通票 2016-05-20
  • 打赏
  • 举报
回复
用yql将跨域数据转为就jsonp的。。 JSONP跨域访问在线代理API
jQuery.ajax( url, [ settings ] ) 返回: jqXHR 执行一个异步的HTTP(Ajax)的请求。 version added: 1.5jQuery.ajax( url, [ settings ] ) url一个用来包含发送请求的URL字符串。 settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。看jQuery.ajax( settings )下所有设置的完整列表。 version added: 1.0jQuery.ajax( settings ) settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。 acceptsMap 默认: 取决于数据类型 内容类型发送请求头,告诉服务器什么样的响应会接受返回。如果accepts设置需要修改,推荐在$.ajaxSetup()方法中做一次。 asyncBoolean 默认: true 默认设置下,所有请求均为异步请求(也就是说这是默认设置为true)。如果需要发送同步请求,请将此选项设置为 false。跨域请求和dataType: "jsonp"请求不支持同步操作。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。 beforeSend(jqXHR, settings)Function 发送请求前可修改 jqXHR(在jQuery 1.4.x的中,XMLHttpRequest) 对象的函数,如添加自定义 HTTP 头等。该jqXHR和设置作为参数传递的。这是一个Ajax事件 。beforeSend行数返回的false将取消该请求。在jQuery 1.5, beforeSend选项将被访问,不管请求的类型。 cacheBoolean 默认: true, dataType为"script"和"jsonp"时默认为false 如果设置为 false ,浏览器将不缓存此页面。 complete(jqXHR, textStatus)Function, Array 请求完成后回调函数 (请求成功或失败之后均调用)。这个回调函数得到2个参数: jqXHR (in jQuery 1.4.x, XMLHTTPRequest) 对象和一个描述成功请求类型的字符串("success", "notmodified", "error","timeout", or "parsererror") 。在jQuery 1.5, complete设置可以接受一个函数的数组。每个函数将被依次调用。这是一个Ajax事件 。 contents(added 1.5)Map 一个以"{字符串:正则表达式}"配对的对象,用来确定jQuery将如何解析响应,给定其内容类型。 contentTypeString 默认: 'application/x-www-form-urlencoded' 发送信息至服务器时内容编码类型。默认值是"application/x-www-form-urlencoded",适合大多数情况。如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器(即使没有数据要发送)。数据将总是使用UTF-8字符集传递给服务器;你必须译码这适当的在服务器端。 contextObject 这个对象用于设置Ajax相关回调函数的上下文。也就是说,让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。比如指定一个DOM元素作为context参数,这样就设置了success回调函数的上下文为这个DOM元素。就像这样: $.ajax({ url: "test.html", context: document.body, success: function(){ $(this).addClass("done"); } });

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧