查看jquery $ .post文档,它似乎没有显示如何使用它设置请求标头。谷歌搜索我认为向POST方法添加请求标头的唯一方法是使用$ .ajax。但是我在转换代码时遇到了问题。
这是$ post code
$.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');
非常感谢。
答案 0 :(得分: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?>');
}
});
答案 1 :(得分: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?>');
})
答案 2 :(得分: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?>');
}
});