簡體   English   中英

jQuery ajax php發布問題

[英]JQuery ajax php post problem

這聽起來可能很奇怪,但是我有一個JQ / AJAX / PHP發布問題。

我的“代碼”無處不在,並且在大多數情況下都可以使用,除了1-我嘗試在過程中傳遞標簽時。

我這樣抓HTML

var ed = $('#fraRTE').contents().find('body #editarea').html(); 

#fraRTE是iframe寬度,是可編輯的div #editarea因此是.contents().find('body #editarea').html()

因此,如果var ed只是“ hello world等...”,則沒有問題,但如果var ed是“ hello world等...... <img src="image.png"> “數據不會被處理-如果var ed是“ hello world等。... <img src="image.png"> ”-文本和實際處理數據的圖像之間沒有間隙。

如果我在發布前alert(ed) ,則我看到“正確的”字符串-無論內容如何,​​都可以這樣發布:

var data = 'content='+ed;
$.ajax({ 
type: 'post', 
url:  'script.php',
data: data,
success: function(msg) { 
alert(msg);
}

});

我在“ data:data”之前創建了數據字符串,因為字符串中還有其他幾項。

我的alert(msg)echo $_POST['content']; script.php

alert(msg)告訴我已(或尚未)發布到數據庫的內容。 這是我看到上述問題的地方。 即是否包含<img...>

建議

構造請求參數時不要使用字符串串聯,否則它們將無法正確進行url編碼,並且如果參數包含某些特殊字符,將無法正確接收它們。 這是正確的方法:

var data = { content: ed };
$.ajax({ 
    type: 'post', 
    url:  'script.php',
    data: data,
    success: function(msg) { 
        alert(msg);
    }
});

jQuery非常聰明,可以為您處理將請求數據轉換為查詢字符串的過程。

$.ajax({
  type: 'post', 
  url:  'script.php',
  data: { content: ed },
  success: function(msg) { 
    alert(msg);
  }
});

您遇到的問題是數據無法正確轉義。

為了自己對其進行字符串化,您必須使用encodeURIComponent()

"content=" + encodeURIComponent(ed);

但是,讓jQuery為您做到這一點要簡單得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM