javascript – jQuery AJAX JSONP错误“意外的令牌”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery AJAX JSONP错误“意外的令牌”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4368字,纯文字阅读大概需要7分钟。
内容图文
我正在尝试在Chrome中进行跨域JSONP调用,但我不断回复“Uncaught SyntaxError:Unexpected token:”
我试过:更改响应内容类型,设置xhr标头,JSON.stringify,这里提供的大多数解决方案,但到目前为止没有任何工作:-(
$.ajax({
type: "POST",
url: "https://www.virustotal.com/vtapi/v2/url/report",
crossDomain: true,
contentType: "application/json; charset=UTF-8",
dataType: 'jsonp',
data: {
apikey: "*",
resource: "http://www.1001freefonts.com/font/BaroqueScript.zip"
},
jsonp: false,
jsonpCallback: receive,
success: function (data, textStatus, jqXHR) {
console.log("Data retrieved: " + data);
}
}).done(function () {
console.log('I think we are done here');
})
.error(function (e) {
console.log(arguments);
console.log('something went funny here');
})
.complete(function (xhr, status) {
console.log("complete");
if (status === 'error' || !xhr.responseText) {
console.log('error');
}
else {
console.log("data found:" + xhr.responseText);
//...
}
});
});
function receive(saveData) {
if (saveData == null) {
console.log("DATA IS UNDEFINED!"); // displays every time
}
console.log("Success is " + saveData); // 'Success is undefined'
}
在调试器中,我可以看到响应
{"permalink": "https://www.virustotal.com/url/b5b546fdbb49a2258e951c5e568a52655c65ac56112e39d15af0954a53b36772/analysis/1360339512/", "url": "http://www.1001freefonts.com/font/BaroqueScript.zip", "response_code": 1, "scan_date": "2013-02-08 16:05:12", "scan_id": "b5b546fdbb49a2258e951c5e568a52655c65ac56112e39d15af0954a53b36772-1360339512", "verbose_msg": "Scan finished, scan information embedded in this object", "filescan_id": "b7e13c0242e9690aba1f3da4b73d9c2e99a9b7fd03f542b55e694a34aaf9eca8-1360339519", "positives": 0, "total": 35, "scans": {"CLEAN MX": {"detected": false, "result": "clean site"}, "MalwarePatrol": {"detected": false, "result": "clean site"}, "ZDB Zeus": {"detected": false, "result": "clean site"}, "K7AntiVirus": {"detected": false, "result": "clean site"}, "Quttera": {"detected": false, "result": "clean site"}, "Yandex Safebrowsing": {"detected": false, "result": "clean site"}, "MalwareDomainList": {"detected": false, "result": "clean site"}, "ZeusTracker": {"detected": false, "result": "clean site"}, "zvelo": {"detected": false, "result": "clean site"}, "Google Safebrowsing": {"detected": false, "result": "clean site"}, "BitDefender": {"detected": false, "result": "clean site"}, "Opera": {"detected": false, "result": "clean site"}, "G-Data": {"detected": false, "result": "clean site"}, "C-SIRT": {"detected": false, "result": "clean site"}, "Sucuri SiteCheck": {"detected": false, "result": "clean site"}, "VX Vault": {"detected": false, "result": "clean site"}, "ADMINUSLabs": {"detected": false, "result": "clean site"}, "SCUMWARE.org": {"detected": false, "result": "clean site"}, "Dr.Web": {"detected": false, "result": "clean site"}, "AlienVault": {"detected": false, "result": "clean site"}, "Malc0de Database": {"detected": false, "result": "clean site"}, "SpyEyeTracker": {"detected": false, "result": "clean site"}, "Phishtank": {"detected": false, "result": "clean site"}, "Avira": {"detected": false, "result": "clean site"}, "Antiy-AVL": {"detected": false, "result": "clean site"}, "Comodo Site Inspector": {"detected": false, "result": "clean site"}, "Malekal": {"detected": false, "result": "clean site"}, "ESET": {"detected": false, "result": "clean site"}, "SecureBrain": {"detected": false, "result": "unrated site"}, "Netcraft": {"detected": false, "result": "clean site"}, "ParetoLogic": {"detected": false, "result": "clean site"}, "URLQuery": {"detected": false, "result": "unrated site"}, "Wepawet": {"detected": false, "result": "unrated site"}, "Minotaur": {"detected": false, "result": "clean site"}}}
我在http://jsonlint.com/上验证了它,它表明它是一个有效的JSON.
这是响应标题
cache-control:no-cache
content-encoding:gzip
content-length:695
content-type:application/json
date:Wed, 13 Feb 2013 12:00:33 GMT
server:Google Frontend
status:200 OK
vary:Accept-Encoding
version:HTTP/1.1
任何人有任何想法/建议?
解决方法:
在彻底测试之后,很明显当ajax期望JSONP作为回报时(由于跨域限制),不可能捕获JSON对象结果.即使响应状态= 200.
我一直在测试使用jQuery AJAX调用,试图看看结果是否仍然可以捕获 – 尽管浏览器抛出了解析错误 – 但它似乎不可能.看起来响应文本在JS工作完成后到达标题.
正如@Florian F. @Likwid_T @Christoph上面所建议的那样,一定要使用服务器端脚本才能使其正常工作.其他开发人员似乎热衷于使用C#编写的代理作为解决方案.
内容总结
以上是互联网集市为您收集整理的javascript – jQuery AJAX JSONP错误“意外的令牌”全部内容,希望文章能够帮你解决javascript – jQuery AJAX JSONP错误“意外的令牌”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。