0

APIに対して認証しようとしています。これにより、フォームデータとしてJSONを使用したPOSTを使用した認証のみが可能になります。

{"username":"myusername","password":"mypassword"}

これをjQueryで機能させるために、3日間努力してきましたが、クロスドメインであるため、問題が発生しています。どうすればこれを達成できますか?

エラーメッセージ:

"NetworkError: 405 Method Not Allowed

私のコード:

var username = "myusername";
var password = "mypass"
var authurl = "https://myurl";

$.ajax
({
    type: "POST",
    url: authurl,
    dataType: 'json',
    contentType: "application/json",
    async: false,
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
    success: function (result) {
        $('#json').html(result);
    }
})

4

2 に答える 2

1

私は同じ問題を抱えていましたが、私はそれを使っdataType:jsonpて私のために働きました。詳細については、 jQueryドキュメントをご覧ください。

$.ajax
({
    type: "POST",
    url: authurl,
    dataType: 'jsonp',
    context: document.body,
    async: false,
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
    success: function (result) {
        $('#json').html(result);
    }
})
于 2012-07-23T07:25:03.933 に答える
0

同一生成元ポリシーのため、通常、別のドメインに対して非同期POSTリクエストを実行することはできません。

JSONPは<script>、DOMにタグを挿入することが許可されているためにのみ機能し、タグはどこを指すこともでき、XMLHttpRequest(ajax)を使用しません。

使用しようとしているAPIがオプションとなるJSONPをサポートしている場合、それ以外の場合は、PHPを使用してCurlなどでデータを投稿し、Ajaxを使用して独自のサーバーでそのPHPスクリプトを呼び出す必要があります。 。

于 2012-07-23T07:37:59.333 に答える