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}),