Javascript 我能';我的$.ajax调用似乎无法正常工作

Javascript 我能';我的$.ajax调用似乎无法正常工作,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,可能重复: JQuery 我正在使用 如果我在浏览器中键入->我会收到一个包含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

可能重复:

JQuery

我正在使用

如果我在浏览器中键入->我会收到一个包含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开发者工具

控制台输出:原点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' 
}
});
我在网络下收到另一个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可以帮助我接收响应,但没有多大帮助,因为我得到了一个未捕获的SyntaxError:意外的令牌非法错误。我认为这是因为响应不是jsonp格式的。有什么方法可以得到json响应吗


正在更改服务器上的访问标头。我没有这样做的权利。

我建议您阅读这篇文章:


XMLHttpRequest(ajax请求)不允许进行跨域调用。这是由浏览器本身设置的限制。但是,如果您的web服务(或web API)运行在同一个域(与您的网站相同)上,那么它工作得非常好。查找

这是因为第一个正在重定向到授权代码,第二个随后被授权。对于跨域XMLHttpRequest,您需要在服务器代码的所有部分设置访问头。数据类型应为JSONPBECOPTIONS,因为服务器中未实现OPTIONS请求