2013-03-21 96 views
0

我似乎在通过URL的字符串发送时遇到问题。该URL看起来是这样的:通过URL字符串发送的JQuery Ajax

http://www.thewebsitehere.com/mf2/stuff/dirhere.asp?sid=&nm=&type=Publishing&mod=Publions::Article&mid=8F3A7027421F87F791&SiteID=B824D34CAB8727A06DEA3467&tier=4&id=8964A4D50BB59A0AD48594A

其发送JS里面所有的信息,但它只是看起来像这样一旦进入到PHP页面:

http://www.thewebsitehere.com/mf2/stuff/dirhere.asp?sid=

我的阿贾克斯是这样设置的:

jQuery.ajax({ 
    type: "POST", 
    dataType: "html", 
    data: "type=add" + "&1A=" + pubName + "&1B=" + postID + "&1C=" + PostTitle + "&1D=" + timeStamp + "&1E=" + pdfLink + "&1F=" + imgLink + "&1G=" + fullArticleLink, 
    url: "../wp-content/plugins/visual-editor-custom-buttons/js/wpDataSend.php", 
    success: function(results) { 
     if (results.indexOf("done") >= 0) { 
      showNotifier(8000,'#43d32b','Title, Pub Name, Image, Date, PDF & Article link have been saved!'); 
     } else { 
      showNotifier(8000,'#d32b2b','Could not save... Please try again!'); 
     } 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     console.log("Status: " + textStatus); 
     console.log("Error: " + errorThrown); 
     showNotifier(8000,'#d32b2b','Error: ' + textStatus + ' | ' + errorThrown); 
    } 
}); 

,我来自PHP页面收集了数据,像这样:

$newtype  = $_POST['type']; 
$pubName  = $_POST['1A']; 
$postID  = $_POST['1B']; 
$PostTitle  = $_POST['1C']; 
$timeStamp  = $_POST['1D']; 
$pdfLink  = $_POST['1E']; 
$imgLink  = $_POST['1F']; 
$Fullarticle = $_POST['1G']; 

我如何纠正呢?

+0

你正在发布到“wpDataSend.php”,但得到“dirhere.asp”?什么是实际的网址?你发送一个'sid'参数吗? – Emmett 2013-03-21 14:08:22

+0

@Emmett这只是一个链接。与发送数据的.php页面无关。 – StealthRT 2013-03-21 14:10:29

回答

1

尝试encodeURIComponent发送post数据the right way。这会转义URL中的某些字符以符合UTF-8标准。

var encodedURL = encodeURIComponent(str); 
+0

这很好,埃文!谢谢 – StealthRT 2013-03-21 14:10:47

4

可以使用

jQuery.ajax({ 
    ... 
    data: {param1 : value1, param2: value2} 
+0

但文档说'数据'的类型:PlainObject或String' – Emmett 2013-03-21 14:04:30

+0

@DarkCthulhu:为了收集这些信息,我的PHP端是否相同?我需要将** dataType **更改为** json **吗? – StealthRT 2013-03-21 14:07:00

+0

@StealthRT它会是一样的。他们仍然会以后参数的形式出现。 – 2013-03-21 14:11:07

0

你的数据改成这样:

data: {type: "add", 1A: "pubName"....//and so on}, 

你必须把报价和周围的值。