2015-05-29 152 views
0
var dlink="http://www.example.com/downloadPkpass.php?temp=f5d022b2-8596-45e7-811d-611d42a15b6c&serial=100000000000135"; 
jQuery.ajax({ 
       type:"POST", 
       url:'../sendMail.php', 
       data: "date="+date+"&vname="+vname+"&offer="+offer+"&expiry="+expiry+"&dlink="+dlink, 
       success:function(res) 
       { 

       }, 
      }) 

我用這個代碼片段來處理我的jQuery Ajax代碼。問題出在dlink變量上。 但在打印$ _POST 的sendMail.php頁面中,它顯示的數組中沒有顯示原始數據。 在sendMail.php它顯示是這樣的:jQuery AJAX發送鏈接顯示破損

[DLINK] => http://www.example.com/downloadPkpass.php?temp=f5d022b2-8596-45e7-811d-611d42a15b6c [串行] => 100000000000135

+1

你的'dlink'裏面有一個'&',因此它在PHP中分成兩個'post'ed變量 –

+0

如何解決這個問題?我必須在一個鏈接中發送2個values.temp和serial 。 –

+0

你將不得不用一些獨特的東西替換任何'&',然後用''dlink''中的'&'替換這個唯一值, –

回答

2

您需要正確編碼的值在URL中使用。最簡單的方法是讓jQuery的做自動傳遞對象:

data: {'date': date, 'vname': vname, 'offer': offer, 'expiry': expiry, 'dlink': dlink}, 

您也可以手動編碼值,如果你要想讓(當你不使用jQuery爲例):

var dlink=encodeURIComponent("http://www.example.com/downloadPkpass.php?temp=f5d022b2-8596-45e7-811d-611d42a15b6c&serial=100000000000135"); 
0

錯方法來聲明數據

data: "date="+date+"&vname="+vname+"&offer="+offer+"&expiry="+expiry+"&dlink="+dlink, 

數據是在下面的格式: -

data: {date: date, vname: vname,offer: offer, expiry: expiry, dlink: dlink}, 
+0

不,它沒有錯,你只需要正確地對值進行編碼。 jQuery實際上將對象轉換爲編碼的查詢字符串,因爲這是在javascript ajax請求中發送的格式。 – jeroen

+0

@ jeroen感謝您的指導。我閱讀了這個http://api.jquery.com/jQuery.ajax/並更正了我的答案。 – Saty