135

AJAXを使用してクロスドメインHTMLページを読み込もうとしていますが、dataTypeが「jsonp」でない限り応答を取得できません。ただし、jsonpを使用すると、ブラウザはスクリプトmimeタイプを予期していますが、「text/html」を受信して​​います。

リクエストの私のコードは次のとおりです。

$.ajax({
    type: "GET",
    url: "http://saskatchewan.univ-ubs.fr:8080/SASStoredProcess/do?_username=DARTIES3-2012&_password=P@ssw0rd&_program=%2FUtilisateurs%2FDARTIES3-2012%2FMon+dossier%2Fanalyse_dc&annee=2012&ind=V&_action=execute",
    dataType: "jsonp",
}).success( function( data ) {
    $( 'div.ajax-field' ).html( data );
});

リクエストにjsonpを使用しないようにする方法はありますか?crossDomainパラメーターを使用してみましたが、機能しませんでした。

そうでない場合は、jsonpでhtmlコンテンツを受信する方法はありますか?現在、コンソールはjsonp応答で「予期しない<」と言っています。

4

9 に答える 9

13

外部サイトが JSONP または CORS をサポートしていない場合、唯一のオプションはプロキシを使用することです。

サーバー上でそのコンテンツを要求するスクリプトを作成し、jQuery ajax を使用してサーバー上のスクリプトをヒットします。

于 2013-02-21T15:05:47.167 に答える
0

最近は機能しませURLんが、この実用的なソリューションでコードを更新できます。

var url = "http://saskatchewan.univ-ubs.fr:8080/SASStoredProcess/do?_username=DARTIES3-2012&_password=P@ssw0rd&_program=%2FUtilisateurs%2FDARTIES3-2012%2FMon+dossier%2Fanalyse_dc&annee=2012&ind=V&_action=execute";

url = 'https://google.com'; // TEST URL

$.get("https://images"+~~(Math.random()*33)+"-focus-opensocial.googleusercontent.com/gadgets/proxy?container=none&url=" + encodeURI(url), function(data) {
    $('div.ajax-field').html(data);
});
<div class="ajax-field"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

于 2019-01-26T07:12:18.773 に答える
-2

適切なCORS ヘッダーを使用して、ブラウザーから要求されたサービスに要求をプロキシする CORS プロキシが必要です。そのようなサービスのリストは、以下のコード スニペットにあります。提供されたコード スニペットを実行して、現在地からそのようなサービスへの ping を確認することもできます。

$('li').each(function() {
  var self = this;
  ping($(this).text()).then(function(delta) {
    console.log($(self).text(), delta, ' ms');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/jdfreder/pingjs/c2190a3649759f2bd8569a72ae2b597b2546c871/ping.js"></script>
<ul>
  <li>https://crossorigin.me/</li>
  <li>https://cors-anywhere.herokuapp.com/</li>
  <li>http://cors.io/</li>
  <li>https://cors.5apps.com/?uri=</li>
  <li>http://whateverorigin.org/get?url=</li>
  <li>https://anyorigin.com/get?url=</li>
  <li>http://corsproxy.nodester.com/?src=</li>
  <li>https://jsonp.afeld.me/?url=</li>
  <li>http://benalman.com/code/projects/php-simple-proxy/ba-simple-proxy.php?url=</li>
</ul>

于 2016-06-01T23:23:08.330 に答える