【发布时间】:2010-07-13 22:30:22
【问题描述】:
我正在使用返回 JSON 数据的 Web 服务。
test.com/incident.do?JSON&sysparm_action=getRecords
在浏览器中加载此 URL 会提示我打开 event.do,它在记事本中打开会显示有效的 JSON 数据。
然后,在同一个域的网页中,我使用这个:
$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', authinfo);
},
url: "https://test.com/incident.do?JSON&sysparm_action=getRecords",
dataType: 'json',
type: 'GET',
success: function(a,b,c) {
alert(a);
}
});
但是,使用此代码我没有收到任何 JSON,我只收到此响应
HTTP/1.1 200 OK
Date: Tue, 13 Jul 2010 22:28:09 GMT
Server: Apache-Coyote/1.1
Allow: GET, HEAD, POST, TRACE, OPTIONS
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain
我在这里做错了什么?
编辑:如果它对任何人有帮助,我有一个指向提供相同功能的提供商网站上的沙箱的链接...用户名/密码是 admin/admin
https://demo.service-now.com/incident.do?JSON&sysparm_action=getRecords
【问题讨论】:
-
是那个 URL 的 Content-Type
application/json? -
@meder 是的,我尝试设置 Content-Type,同样的问题。
-
如果您没有收到来自网络服务的
Content-Type: application/json回复,那么即使它回复的是一个 json 对象,它也不会起作用。 -
你得到的响应真的是一个有效的 JSON 吗?你确定吗?能否提供手动打开页面时得到的输出?
-
手动加载时,我收到一个 event.do 文件。当以纯文本形式查看时,其有效 JSON;我可以提供输出,但它只是 .do 文件中的 JSON 行话。