【发布时间】:2012-10-28 13:05:50
【问题描述】:
我是向服务器人员发送请求的客户端人员。我的最终目标是在 jsonp 中发送请求。
这是我使用?accept=json 发送请求时得到的服务器响应(并且因为不是 jsonp 而收到无效会话错误)
{"errorCode":-15,"errorDescription":"SessionNotFoundException - Session not found","success":false,"payload":null}
我可以阅读它,它很好。
然而,这是?accept=jsonp的服务器响应:
jQuery171024326910870149732_1351429007451({"action":"", "type":"", "callerId":""}, {"errorCode":0,"errorDescription":"OK","success":true,"payload":null});
它是这两个我不知道如何阅读的对象的形式:{a},{b}。
当我使用 jQuery ajax 调用时
服务器数据的输出只有{a}部分:
Object {action: "", type: "", callerId: ""}
我的 2 个问题是:
- 具有 2 个对象 (
{a},{b}) 的服务器响应是否有效?服务员发送这种对象是错误的还是有效的? - 如何读取 jsonp 对象?我似乎无法正确阅读的 ajax 调用有什么问题?
这是我使用的 ajax 调用:
$.ajax({
url:url,
dataType:'jsonp',
success:function(data){
console.log("data is,"data")
//if the call was success
if (data.success) {
//if errors
} else {
}
}
}
【问题讨论】:
-
由于您要返回的是 2 个对象,因此请尝试在成功处理程序中使用 2 个对象。
success:function(data1, data2){让我知道这是否有效。 -
我收到一个控制台错误“Uncaught SyntaxError: Unexpected token s”,我猜这意味着它不明白如何读取“data2”,有什么解决方案吗?也许是一种定义 data2 的方法?
-
这是 2 个独立的有效 JSON 块,所以我认为这并不重要。您是否可以控制服务器端 JSON 响应?
-
服务器端没有控制权。
-
是否可以给我写一个错误和成功的有效 $.ajax jsonp 请求示例,以便我看到它的外观?我想我会使用诸如“数据”“数据类型”之类的参数,因为我不知道如何编写它们并将它记下来会为我简化它
标签: javascript jquery ajax json jsonp