我有以下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'];
}
答案 0 :(得分:2)
您需要在发布之前对字符串进行编码:
...
parameters: 'report=' + encodeURIComponent(text);
...
现在,字符串中的字符可以使其无效,将其拆分为多个键值字段等。