1

次のような ajax 関数を呼び出す JavaScript アプリケーションがあります。

$.ajax({ url: apiURL, dataType: 'jsonp', success: function(data) {
    if (data.ok) {
        //do things
}}});

アクセスしようとしているajax URLはetsyapiを介しており、adblockをオンにしてchromeでアプリケーションにアクセスしようとするまで、すべてがうまく機能します。ajax 呼び出しが完全に失敗し、Failed to load resource-"theActualURL" メッセージでエラーが返されます。

javascript でこれを乗り越える方法を理解できず、これを機能させるには php 呼び出しを行う必要があると言われました。

残念ながら、私はphp-iveがその基本的な構造さえ理解しようとしたことを最初に知りません.javascriptで回避策を見つけることができなかったので、phpで行う必要があると思います.

動的URL(javascriptからphpページに渡される)を使用してphpでajax関数を呼び出し、配列をjavascriptに戻して操作する最も簡単な方法はありますか?

私はPHPでここまで来ました-

<?php
    $json = array();

    ????????????????????????

    $jsonstring = json_encode($json);
    echo $jsonstring; 
?>

しかし、JavaScript から動的 URL にアクセスする方法がわかりません。

4

1 に答える 1

0

本当にjsonpを使用している場合は、phpは必要ありません。次のように置き換えます$.ajax...

var newScript = document.createElement('script');
newScript.src = apiURL;
document.head.appendChild(newScript);

上記を無視してください、私はjQueryで時代遅れです。それでも、APIエンドポイントが実際にjsonpで応答している場合は、phpは必要ありません。エラーが発生した場合は、URLが間違っている/悪いようです。apiURLブラウザのアドレスバーに入れて開くだけで試しましたか?

jsonpは、JavaScript関数呼び出しで返されたデータをラップするクロスドメインajax制限の回避策です。これにより、スクリプトタグにロードでき、スクリプトの実行時にデータをパラメーターとして関数が実行されます。

于 2012-08-18T00:21:15.753 に答える