0

$.ajaxこのようにjQuery v1.9でMongolab WebAPIを消費しようとしています

$.ajax({
  url: "https://api.mongolab.com/api/1/databases/my-db/collections/my-coll?apiKey=myAPIKey",
  type: "GET",
  contentType: "application/json"
});

application/javascriptそして、それはクロスドメインリクエストであり、 contentType は である必要があり、 dataType は である必要があると思いましたが、JSONP驚くべきことに、 で json の結果を正常に返しContentType 'application/json'ます。jquery が ajax 呼び出しをカプセル化し、application/javascript.

これは初心者の質問に見えるかもしれませんが、誰かが私に説明をしてもらえますか?

4

2 に答える 2

2

そのコードを jsfiddle.net を使用してサファリで実行しようとすると、次のようになります。

Failed to load resource: Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

これは、Safari がajax 呼び出しを介してアクセスを許可されているapi.mongolab.comかどうかを尋ねfiddle.jshell.netたときに、mongolab.com が応答しなかったか、「いいえ、許可しないでください」と応答したことを意味します。おそらく、ドメイン名が localhost であるか、mongolab に登録されている場合は、実行が許可されます。

ただし、最新のブラウザでのみ機能します。http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

于 2013-07-01T06:20:43.897 に答える