0

同じドメイン ( http://example.host.com -> http://example.host.com ) POST を作成すると、responseXML に期待されるデータが含まれます。同じリクエストを行いますが、PUT として、リクエストが成功した場合の responseXML は null です。私はjQuery.ajaxを使用していますが、手動の実装でも同じ結果をテストしました。

var settings = {
    url: '//' + window.location.host + window.location.pathname,
    type: getRequestType(),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    data: JSON.stringify(parms),
    error: function(jqxhr, status, error) {
        console.log('error');
    },
    success: function(data, status, jqxhr) {
        console.log('success:', data);
    }
};
$.ajax(settings);

単純な json 形式の文字列を返す非常に単純なサーバー要求ハンドラーを使用しています。

@require_http_methods(["PUT"])
def proxy_update(request):
    out = {
        'type': 'update',
        'success': True
    }
    return HttpResponse(json.dumps(out), mimetype="application/json")

これについての説明は何ですか?

4

1 に答える 1

1

jQuery のドキュメントによると、すべてのブラウザーがすべての動詞をサポートしているわけではありません。使用しているブラウザが PUT 動詞をサポートしていない可能性があります。別のブラウザを試してください。ブラウザに問題がない場合は、サーバーが PUT 動詞を無視するように構成されている可能性もあります。

于 2014-03-09T04:26:54.527 に答える