こんにちは、次の手順に従って、jQuery を使用して ajax 呼び出しを実行しようとしています: http://data.hud.gov/housing_counseling.html
しかし、これはクロスドメイン リクエストなので、jsonp を実行する必要があります (知識がありません)。
調査の後、私は 2 つの方法で呼び出しを行いましたが、エラーが発生し続け、データはブラウザーのどこかにありますが、アクセス方法がわかりません。
URL のコールバック パラメータに注意してください (含めない場合、Origin is not allowed by Access-Control-Allow-Origin. になります)。
最初の呼び出し:
function loadJson()
{
var statesurl = "http://data.hud.gov/Housing_Counselor/search?AgencyName=&City=&State=CA&jsoncallback=?"
$.getJSON(statesurl, null, function(result){
}).done(function(result) {
var items = [];
$.each( result, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
console.log(key + ": " + val)
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "div#thestates" );
}).fail(function() {
console.log( "error" );
})
}
$( "#loadstates" ).click(function() { loadJson()});
そして、http://data.hud.gov/Housing_Counselor/search?AgencyName=&City=&State=CA&jsoncallback=jQuery19107074434771202505_1384407999935&_= 1384407999936 のようなコールバックパラメータのランダムなコールバック名を取得します。キー値のペア。
$.ajax で呼び出しを試みると、$.ajax 呼び出しでも同じことが起こります。
function loadJsonP()
{
var statesurl = "http://data.hud.gov/Housing_Counselor/search?AgencyName=&City=&State=CA&jsoncallback=?"
$.ajax({
url:statesurl,
dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
success:function(json){
// do stuff with json (in this case an array)
console.log(json_encode(json))
},
error:function(){
console.log("Error");
},
});
}
上記の図と同様の応答が得られます。両方の console.log 出力は「エラー」ですが、200 応答が表示されます
成功した応答を取得し、明らかにブラウザーのどこかにある JSON データを操作するには、応答をどのように処理する必要がありますか?
ありがとうございました