我正在尝试通过 jQuery.ajax() 发布原始字符串
例如,
contact_list=352345
我有
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader('Content-Type', header);
}
},
url: link,
type: type,
processData:false,
data: data,
success: function(data){
console.log(data);
}
});
大多数我发送 JSON 数据,所以 header='application/json'
在服务器端,我回显 $HTTP_RAW_POST_DATA
并正常查看我的 JSON 字符串。
但是,有时我也想发送普通表单数据。但是当我设置 header='application/x-www-form-urlencoded'
$HTTP_RAW_POST_DATA
是空的。
ProcessData
是假的,所以它不应该只是传递我的字符串吗?
作为临时解决方法,我只是将 header 保留为 application/json
并忽略服务器上该特定端点的 Content-Type
。
最佳答案
我宁愿向我的 javascript 函数发送一个标志以查看什么样的输入
所以你的函数看起来像这样
function processIt(request_type,link,type,data) {
if(request_type == 'json')
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader('Content-Type', header);
}
},
url: link,
type: type,
processData:false,
data: data,
success: function(data){
console.log(data);
}
});
else
$.ajax({
url: link,
data: data,
success: function(data){
//do something
}
});
}
但那是如果你想按原样使用你的函数。
关于javascript - 如何通过 jQuery POST 请求发送原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9147599/