0

サイトのAPIを呼び出すJavascriptクライアントAPIサービスを作成しようとしています。これはクロスドメインになり、これが引き起こす問題を認識しています。ただし、ユーザー固有の詳細を返すことができるように、ユーザーがいくつかのユーザー資格情報(明らかにエンコードされたユーザー名とパスワード、またはAPIキー+シークレット)を介して送信する必要があります。

私は最初にデータ型の使用を検討しましたが、jsonpこれではカスタムヘッダーを設定できないため、これを除外しました。

私はしばらくの間ウェブを検索していて、このクロスドメインを行うための安全な方法を見つけることができませんでした、誰かがこれで成功しましたか、そして私にいくつかのアドバイスを与えることができますか?

アップデート:

lu1sによって提案された次のコードを試しましたが、エラー関数で述べられているように「boo」のアラートが表示されます。

$.ajax({
    url: 'http://www.dotsandboxes.co.cc/__tests/cors.php',
    type: 'GET',
    dataType: 'json',
    success: function() { alert('hello!'); },
    error: function() { alert('boo!'); },
    beforeSend: function (xhr) {
        xhr.setRequestHeader('securityCode', 'Foo');
        xhr.setRequestHeader('passkey', 'Bar');
    }
});

ありがとう

4

1 に答える 1

0

あなたはできる。Allow-Access-Control-Origin: *をHTTP応答ヘッダーに追加し、正しいコンテンツタイプを追加してみてください。

次のような単純なPHPスクリプトを試してください。

<?php
    header('Access-Control-Allow-Origin: *');
    header('Content-type: text/json');
    echo json_encode(array('success'=>true,'data'=>'foobar'));
?>

クロスオリジンの詳細については、次のサイトを確認してください:http: //enable-cors.org/

認証については、暗号化されている場合でも、ユーザー名やパスワードを送信することはお勧めしません。あなたが述べたように、URLでトークンを渡す方が良いです。http://oauth.net/2/などの標準に従う場合に最適です。

于 2012-04-24T19:12:24.743 に答える