jQuery
我正在使用 http://code.jquery.com/jquery-1.7.2.min.js
如果我在浏览器中输入 -> http://pol638_047fe0/JSON.HTML?FN=GetPages&PIN=7659我会收到一个包含我的 json 内容的文件
Javascript
var url = 'http://pol638_047fe0/JSON.HTML';
$.ajax({
url: url,
type: 'GET',
dataType: 'json',
username: 'ADMIN',
password: '1234',
data: {
'FN': 'GetPages',
'PIN': '7659'
},
xhrFields: {
withCredentials: true
},
sucess: function(data) {
alert('done');
console.log('data', data);
}
});
Chrome 开发者工具
控制台输出:Origin null 错误
XMLHttpRequest cannot load http://pol638_047fe0/JSON.HTML?FN=GetPages&PIN=7659. Origin null is not allowed by Access-Control-Allow-Origin.
这并没有真正困扰我,因为服务器不应该关心谁使用正确的用户名和密码访问数据。
网络标题:
Request URL:http://pol638_047fe0/JSON.HTML?FN=GetPages&PIN=7659
Request Headersview source
Accept: '*/*'
Cache-Control: max-age=0
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11
Query String Parametersview URL encoded
FN: GetPages
PIN: 7659
好的。这里肯定出了问题..
现在奇怪的是,如果我将此 ajax 调用添加到代码中:
...
$.ajax({
url : url,
data: {
'FN' : 'GetPages',
'PIN' : '7659'
}
});
我在 Network 下收到另一个 JSON.HTML 文件,响应正确:
Request URL: http://pol638_047fe0/JSON.HTML?FN=GetPages&PIN=7659
Request Method: GET
Status Code: 200 OK
Request Headersview source
Accept: application/json, text/javascript, '*/*'; q=0.01
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Authorization: Basic QURNSU46U0JUQWRtaW4h
Cache-Control: max-age=0
Connection: keep-alive
Host: pol638_047fe0
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11
Query String Parametersview URL encoded
FN: GetPages
PIN: 7659
Response Headersview source
Connection: close
Content-Type: application/octet-stream
Server: Keil-EWEB/2.1
回复:
[{"pg":0,"descr":"PC1"},{"pg":1,"descr":"PC2"},{"pg":2,"descr":"PC3"},{"pg":3,"descr":"HG1"},{"pg":4,"descr":"HG2"},{"pg":5,"descr":"HG3"},{"pg":6,"descr":"HG4"},{"pg":7,"descr":"DW1"},{"pg":8,"descr":"DW2"},{"pg":9,"descr":"CMN"}]
我的想法已经用完了,我很感谢任何帮助或建议!
选拔赛
将类型更改为 jsonp 可以帮助我收到响应,但没有太大帮助,因为我收到了 Uncaught SyntaxError: Unexpected token ILLEGAL Error。我认为这是因为响应不是 jsonp 格式的。有什么办法可以得到json响应吗?
更改服务器上的访问标头。我没有权利这样做。