0

jquery $.post docs を見ると、それを使用してリクエストヘッダーを設定する方法が表示されていないようです。グーグルで調べてみると、POST メソッドにリクエスト ヘッダーを追加する唯一の方法は、単純に $.ajax を使用することだと思います。しかし、コードの変換に問題があります。

これが $post コードです

$.post(url_ajax_signature, signature_params, function(response) {
  //send through crossdomain page
  var windowFrame = document.getElementById('postMessageFrame').contentWindow ;
  var data = {
          params: response.params,
          url: response.url,
          content: dataURL
  }

  //send data of s3 request signature and base64 binary data
  windowFrame.postMessage(data, 'http://<?=$url_iframe_host?>');                
}, 'json');

大変感謝しています。

4

3 に答える 3

3

次の構文のように修正する必要があります。

$.ajax({
            type: "POST",
            url: url_ajax_signature,
            data: JSON2.stringify({ signature_params }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
                var windowFrame = document.getElementById('postMessageFrame').contentWindow;
                var data = {
                          params: msg.params,
                          url: msg.url,
                          content: msg.dataURL
                  }
                //send data of s3 request signature and base64 binary data
                windowFrame.postMessage(data, 'http://<?=$url_iframe_host?>'); 
            }
        });
于 2013-10-16T03:55:26.650 に答える
0

$.ajax()を使用してリクエスト ヘッダーを設定する場合は、次のようにします。

$.ajax({
    url: url_ajax_signature,
    data: signature_params,
    dataType: 'json',
    beforeSend: function (request) {
        request.setRequestHeader('your header here');
    },
    success: function(response) {
        var windowFrame = document.getElementById('postMessageFrame').contentWindow ;
        var data = {
          params: response.params,
          url: response.url,
          content: dataURL
       }

        //send data of s3 request signature and base64 binary data
        windowFrame.postMessage(data, 'http://<?=$url_iframe_host?>');
    }
});
于 2013-10-16T03:57:26.010 に答える
0

試す

$.ajax({
    url: url_ajax_signature,
    data: signature_params,
    dataType: 'json',
    headers: {
        header: value
    }
}).done(function (response) {
    //send through crossdomain page
    var windowFrame = document.getElementById('postMessageFrame').contentWindow;
    var data = {
        params: response.params,
        url: response.url,
        content: dataURL
    }

    //send data of s3 request signature and base64 binary data
    windowFrame.postMessage(data, 'http://<?=$url_iframe_host?>');
})
于 2013-10-16T03:55:02.180 に答える