我有以下代码:
var result = confirm("You want to Subscribe to our Newsletter?");
var emailAddress = $("#subscribeEmail").val();
if (result == true) {
$.ajax({
type: 'POST',
url: '/php/subscribeNewsletter.php',
data: '{"email": "' + emailAddress + '"}',
complete: function(r){
alert(r.responseText);
}
});
}
我认为问题与: 数据:' {"电子邮件":"' + emailAddress +'"}',
我在服务器端收到一个空的$ _POST数组。
答案 0 :(得分:2)
传递对象文字,而不是字符串:
data: {email: emailAddress },
jQuery会将对象转换为URL编码的键/值对,这些对将在PHP端的$_POST
数组中获取。
您当前的代码实际上是将JSON字符串作为原始POST数据发送。 jQuery看到数据类型是一个字符串,因此它不进行任何处理,因此您必须访问PHP端的原始POST数据并进行JSON解码才能获得它。
答案 1 :(得分:1)
是问题是:data: '{"email": "' + emailAddress + '"}'
,它应该是对象:
...
data: {"email": emailAddress},
...
答案 2 :(得分:1)
将ajax调用中的data
属性作为json对象而不是字符串提供。
像
data: {"email": emailAddress },
答案 3 :(得分:0)
您可以使用如下
$.get('/Presentation/AjaxData/History.aspx', { itemID: itemid }, function (data) {
$('.history-listing-tabs>.tab-item').html(data);
});
答案 4 :(得分:0)
试试这种格式
data: {email: emailAddress}
答案 5 :(得分:0)
更好地将数据传递给变量并在发送时使用它,
var temp = 'email:' + emailAddress;
...
data: temp;
.....