【发布时间】:2014-05-30 07:41:49
【问题描述】:
我有一些代码可以用 jquery 1.9 调用其他几个站点(跨域),这迫使我在 ajax 调用中使用 jsonp 而不是 json:
.ajax({
type : "POST",
url : "http://web.company.com/login/?login_only=1&callback=photos",
data : "user="+ username,
crossDomain : true,
dataType : "jsonp",
但是,它总是返回一个解析错误:
语法错误:缺失;声明之前 {"status":1,"redirect":"/cpsess9236070602/web/x3/index.html?login
我知道这可能是因为响应不是严格的 jsonp 格式。如何在没有 jsonp 错误的情况下捕获重定向变量?
【问题讨论】:
-
要将 json 更改为 jsonp,您需要将 json 字符串包装在照片中,因此您将返回 "photos($jsonString)"
-
您无法使用客户端 javascript 解决此问题。它必须由
web.company.com修复,或者您必须在您的服务器上使用代理脚本。 -
@KevinB - 当然可以,如果其他站点在 Node 上运行;) ...
-
哈哈,我猜你是对的!让它更精确......
-
@KevinB - 无论如何,这不能通过调用 web 服务的代码来解决,它只能由 web 服务修复,因为它们必须返回有效的 JSONP。跨度>
标签: javascript jquery ajax jsonp