ajax死活不走success,只走error,请求状态码为200.

求解,如何解决呢?另外一个域名走是OK的,但这个域名死活不走,前端代码如下:

图片描述

后端代码如下:

clipboard.png

clipboard.png

阅读 13k
8 个回答

谢谢各位,总算找到答案了,还是没配置一个方法。我技术总监找出来的。

clipboard.png
少了这玩意,因为jsonp是固定的格式,这方法组织了这一格式。

接口没处理callback吧?

写法没有错,估计是服务器端返回的不是jsonp格式,回调处理失败了。
$.ajax 默认的jsonp回调参数是?callback=_XXXX,看看后台处理和返回是否正确。

服务器return的值错了呀 你返回的是空值啊看上去 如果有一个什么 {"result":"successful"} 之类的试试?

Javascript:添加

$.ajax({
    ....
    jsonp:'jsonp_callback',  <- 指定callback回调函数名
    ....
})

jQuery会使用AJAX GET请求一个 /url/?callback=jsonp_callback 的URL
然后会执行 jsonp_callback(result)的JavaScript的回调

function(){
    return string;
}

javascript收到的就会是一个String类型的输出。并不是JSON。不是JSON就DIE掉了。

function (){
    // 这里是callback还是jsonp_callback忘了。具体百度一下
    return $_GET['callback']."(".json_encode($string).")";
    // 实际返回并输出的将会是:  `jsonp_callback("string")`
}

update

clipboard.png

看图说话:
ajax请求地址为http://baidu.com
实际请求地址为http://baidu.com/?callback=xxxxxxx&_=xxx&_=xxxx

为什么不用数字代替返回内容啊。

dataType与返回值不符,建议把这个参数拿掉让jquery自动识别返回值。
另外这不是jsonp吧?

跨域请求要返回函数,而不是返回json串

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题