Ajax请求只发布部分文本

时间:2014-10-27 15:27:38

标签: javascript php ajax prototypejs

我有以下ajax脚本(原型js),但它只发布部分文本。

Selenium.prototype.doSaveCopyPaste = function(locator) {
 var element = this.page().findElement(locator);
 var text = jQuery(element).text();
 console.log(text);

var ajax = new Ajax.Request('http://copypaste.test', {
  method: 'post',
  parameters: 'report=' + text,
  processData: false,
   onSuccess: function(transport) {
    var response = transport.responseText || "no response text";
    alert("Success! \n\n" + response);
   },
   onFailure: function() { alert('Something went wrong...'); }
 });
   console.log(ajax);
 }

当我在控制台中输出text时,我获得了通过locator传递的所有内容,例如

------------------------------------------------------------
<br>
 Header 1
<br>
------------------------------------------------------------
<br>
 Header 2
<br>
 Sub Heading: A Name
<br>
 Sub Heading 2: Another Name
<br>
Sub Heading 3: data here
<br>
etc etc for about 3000 characters

所以我意识到我这里没有字符串,这可能就是为什么我有问题?所以我怎么能把所有的数据发送到我的PHP脚本..

if ($_POST['report']) {
  echo $_POST['report'];
}

1 个答案:

答案 0 :(得分:2)

您需要在发布之前对字符串进行编码:

...
parameters: 'report=' + encodeURIComponent(text);
...

现在,字符串中的字符可以使其无效,将其拆分为多个键值字段等。