JSON応答解析できないコードに示すようにAjaxリクエストが、私はここにコードをテストしてい
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
var processJSON = function(data, textStatus, xhr) {
alert(xhr.status);
}
// for whatever reason, the following URL is not working any more, so you won't be able to test it anymore.
var myURL='https://ckeqt3eoea.execute-api.us-east-1.amazonaws.com/pettest/test?name=223';
// var myURL="https://jsonplaceholder.typicode.com/users"
$("button").click(function(){
$.ajax({
url: myURL,
dataType: "json",
contentType: 'application/json',
success: processJSON
});
});
});
</script>
</head>
<body>
<button>Send Request</button>
</body>
</html>
を、私は解析しようとしていますこのURLからの応答: https://ckeqt3eoea.execute-api.us-east-1.amazonaws.com/pettest/test?name=223
そして、あなたが直接そのURLにアクセスして、AWS-API-Gateway
からの応答が単純であることを知ることができます。
{
"cc":"dd",
"name":"ee"
}
他のソースからの他のjson
応答を解析するために上記のjavascriptを使用することができました。しかし私はAWS-API-Gateway
から上記の応答を解析しようとしている私の髪を引っ張っている。 var myURL
の2行目のコメントを外すと、コードが他のURLに対して実際に機能することがわかります。既存の回答を受けて
==========
:
- 私は
json
とjsonp
の両方を試してみました。どちらも他のURL(私がコメントしたものを含む)で働いていました。しかし、いずれもAWS Gateway APIでは機能しません。 - また、名前付き関数を使用するようにコードを更新しました。しかし、やはり他のURLでは有効ですが、AWS URLでは機能しません。
- 私はFirefoxとSafariでテストしました。
あなたのAPIは現在CORSをサポートするように設定されていない可能性があります。これはURLを直接入力するとJSONがブラウザに出力される理由を説明しますが、別のクライアントアプリケーションからサーバーに要求を行うと、あなたのデータオブジェクトで。 AWSでCORSを受け入れるようにAPIを設定してください – Alex