2014-07-01 4 views
1

나는 다음과 같은 코드가 있습니다,jQuery를 AJAX POST 보내기 변수

데이터 : 내가 문제가 함께 할 것입니다 생각

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

이 데이터를 사용해보십시오 : JSON.stringify ({email : emailAddress}), –

답변

2

객체 리터럴을 통과하지 문자열 :

data: {email: emailAddress }, 

jQuery를이 URL 인코딩 된 키/값으로 객체를 변형시킬 것이다 쌍은 PHP 측의 $_POST 어레이에서 선택됩니다.

현재 코드가 실제 POST 데이터로 JSON 문자열을 보내고 있습니다. jQuery는 데이터 유형이 문자열이기 때문에 어떤 처리도하지 않으므로 PHP 측에서 원시 POST 데이터에 액세스하고 JSON 디코딩을 수행하여 데이터를 가져와야한다.

1

네 문제는 다음과 같습니다 data: '{"email": "' + emailAddress + '"}', 그것은 개체를해야한다 :

... 
data: {"email": emailAddress}, 
... 
1

문자열 대신 json 개체로 ajax 호출에 data 속성을 제공하십시오.

,

data: {"email": emailAddress }, 
0

당신은

$.get('/Presentation/AjaxData/History.aspx', { itemID: itemid }, function (data) { 
     $('.history-listing-tabs>.tab-item').html(data); 
}); 
0

변수에이 형식을

data: {email: emailAddress} 
0

더 나은 패스 데이터를 시도하고 전송하는 동안 사용 아래처럼 사용할 수 있습니다 같은

var temp = 'email:' + emailAddress; 
... 
data: temp; 
..... 
관련 문제