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
Ok。ここで何かが間違いなくうまくいかなかった..
奇妙なことに、この 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に変更すると、応答を受け取るのに役立ちますが、 Uncaught SyntaxError: Unexpected token ILLEGAL Error が発生するため、あまり役に立ちません。これは、応答が jsonp 形式ではないためだと思います。json 応答を取得する方法はありますか?
サーバーのアクセス ヘッダーを変更します。私にはそれをする権利がありません。