javascript - ajax死活不走success,只走error,请求状态码为200.
PHP中文网
PHP中文网 2017-04-11 12:44:10
[JavaScript讨论组]

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

后端代码如下:

PHP中文网
PHP中文网

认证0级讲师

全部回复(8)
巴扎黑

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


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

伊谢尔伦

接口没处理callback吧?

天蓬老师

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

PHP中文网

服务器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

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

高洛峰

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

PHP中文网

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

天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号