Javascript jQuery AJAX POST发送变量
我有以下代码:Javascript jQuery AJAX POST发送变量,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下代码: 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":
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);
}
});
}
我认为问题在于:
数据:“{”email:“'+emailAddress+“}”
我在东西的服务器端收到一个空的$_POST数组。是的问题是:
数据:“{”email:“+emailAddress+”}”
,它应该是对象:
...
data: {"email": emailAddress},
...
是的问题是:
数据:“{”email:“'+emailAddress+“}”
,它应该是对象:
...
data: {"email": emailAddress},
...
传递对象文字,而不是字符串:
data: {email: emailAddress },
jQuery将对象转换为URL编码的键/值对,这些键/值对将在PHP端的$\u POST
数组中提取
您当前的代码实际上发送了一个JSON字符串作为原始POST数据。jQuery发现数据类型是一个字符串,因此它不进行任何处理,因此您必须访问PHP端的原始POST数据,并进行JSON解码以获取该数据。传递对象文本,而不是字符串:
data: {email: emailAddress },
jQuery将对象转换为URL编码的键/值对,这些键/值对将在PHP端的$\u POST
数组中提取
您当前的代码实际上发送了一个JSON字符串作为原始POST数据。jQuery发现数据类型是一个字符串,因此它不做任何处理,因此您必须在PHP端访问原始POST数据,并进行JSON解码以获取它。在ajax调用中提供
data
属性作为JSON对象而不是字符串
像
在ajax调用中提供
data
属性作为json对象而不是字符串
像
你可以像下面这样使用
$.get('/Presentation/AjaxData/History.aspx', { itemID: itemid }, function (data) {
$('.history-listing-tabs>.tab-item').html(data);
});
你可以像下面这样使用
$.get('/Presentation/AjaxData/History.aspx', { itemID: itemid }, function (data) {
$('.history-listing-tabs>.tab-item').html(data);
});
试试这种格式
data: {email: emailAddress}
试试这种格式
data: {email: emailAddress}
最好将数据传递给变量,并在发送时使用它
var temp = 'email:' + emailAddress;
...
data: temp;
.....
最好将数据传递给变量,并在发送时使用它
var temp = 'email:' + emailAddress;
...
data: temp;
.....
尝试使用以下数据:JSON.stringify({email:emailAddress}),尝试使用以下数据:JSON.stringify({email:emailAddress}),