下午好,
我试图使用jQuery访问python网络服务,并在成功事件函数中获得未定义的响应:
api请求url:
var hit = 'http://<domain>/api20/account2_public/signupface?FirstName=Jeevan2&LastName=Verma2&ScreenName=mssBoi2&Email=mss.abcd@gmail.com&Password=123';
Ajax跨域调用:“dataType”:“script”:
$.ajax({
type: "GET",
url: hit,
dataType: "script",
cache: true,
headers: myheaders,
success: function (data){
alert(data); // here my response is undefined I need help here
},
error: function (header, status, error) {
console.log(arguments);
console.log('ajax answer post returned error ' + header + ' ' + status + ' ' + error);
},
complete: function (data) {
alert(toSource(data));
}
});
我的浏览器控制台错误,这是我需要的响应:
SyntaxError: missing ; before statement
{"Item": {"error": "Account with that e-mail already exists"}, "Sta
不理解就是!如果我的请求是成功--为什么我的响应数据是未定义的--我使用jsonp尝试了相同的脚本,在这个脚本中得到了parrseerror,没有调用jQuery回调,我尝试了在讨论它的堆栈溢出回答,并在花了几个小时之后问这个问题,请帮助我,因为我让我的成功事件运行,需要在控制台中响应,但有线响应数据警报作为‘未定义’。
谢谢你
发布于 2013-12-06 03:50:08
看起来您有JSON作为响应,但是您的dataType
被设置为script
。正如文档中所说的
“脚本”:将响应计算为JavaScript,并将其返回为纯文本。通过将查询字符串参数"_=TIMESTAMP“附加到URL来禁用缓存,除非缓存选项设置为true。注意:这将将POST转换为远程域请求的GET。
您应该将dataType
更改为json
" JSON ":将响应计算为JSON,并返回一个JavaScript对象。对JSON数据进行严格的解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也会被拒绝;服务器应该返回null或{}响应。(有关正确的JSON格式的更多信息,请参见json.org。)
在success
中,您将得到作为对象的响应。
还请注意,您的服务以text/plain
格式返回数据。如果您将其更改为application/json
,jQuery会“猜测”dataType
本身,并且可以在$.ajax()
调用中省略它(我自己更喜欢指定dataType
)。
https://stackoverflow.com/questions/20422966
复制相似问题