jQuery AJAX POST发送变量

时间:2014-07-01 10:01:58

标签: 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": "' + emailAddress + '"}',
      complete: function(r){
    alert(r.responseText);
    }

    });


  }

我认为问题与:  数据:' {"电子邮件":"' + emailAddress +'"}',

我在服务器端收到一个空的$ _POST数组。

6 个答案:

答案 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;
 .....