我的url参数需要包含查询字符串,因为系统每次请求链接都需要传递令牌。我想使用ajax POST到我的PHP页面。
下面是我的Ajax代码: -
var data = new Array();
data[0] = $('#coupon_code').val();
data[1] = $('#coupon_value').val();
var jsondata = {"data": data}
var json = JSON.stringify(jsondata);
$.ajax({
url:"index.php?route=coupon/create&token=csrf1234567",
cache:false,
processData: false,
type: 'post',
dataType: 'json',
contentType: 'application/json',
data:{json},
success:function(){}
});
然而,我的PHP脚本就像下面,以确保我拥有的一切传递给服务器端:
public function create()
{
var_dump($_REQUEST);
}
它只有下面的输出: -
array(2) {
["route"]=>
string(13) "coupon/create"
["token"]=>
string(11) "csrf1234567"
}
铬内insepct它显示
**Query String Paramaters**
route:coupon/create
token:csrf1234567
**Request Payload**
[object Object]
它没有POST变量传递给我的PHP。我想使用类型POST和json来完成这个任何想法如何解决它?
解决:
data:{json},
变化
data:json,
感谢您的解决方案!
2016-08-17
Shiro
+1
为什么你{围绕字符串化的数据,为什么你把它们串起来让它发送并让查询变成stringify。它也将通过表单数据。 –
+0
我在json中尝试过很多方法。我直接放入ajax():data:{var_coupon_code = $('#coupon_code').val();},它也变成了[object Object],这是我尝试过的最新的一个,但仍然没有POST变量在服务器端。 –
+0
'javascript'是'data:json','php'是'var_dump($ _ POST);''或'print_r($ _ POST);'' https://jsfiddle.net/wu0kx3nq/ –