我已經看到了有關從發送HTML數據PHP 到一個HTML頁面的一些問題,但這個問題實際上是相反不起作用(我可以從PHP HTML罰款與json_encode)。發送HTML通過的getJSON javascript變量
的一小段代碼,說明大部分:
savePage = function() {
var pagecontents = $("#editcontents").val();
log("Attempting to save page...");
$.getJSON(docTools+"?jsoncallback=?",{action:'update', loginCookie:loginCookie, page:thisFile, newdata:pagecontents}, function(data) {
if(data.response[0].answer === 'true') {
log('Page'+thisFile+' was saved correctly: '+data.response[0].details);
$("#editcontents, #saveedit, #canceledit").remove();
$("#bodycontents").html(pagecontents);
} else {
log('Failed to save page. Error (' + data.response[0].errorcode + ') : ' + data.response[0].errormessage);
}
});
}
FYI:登錄少了點,如果它存在CONSOLE.LOG。
所以基本上這裏所發生的是,pagecontents變量包含HTML數據,所有這些都在<body>
標籤(意思是沒有頭信息,如果該事項)。然而,當我真正調用這個函數時,log()函數可以正常工作......但是getJSON()永遠不會完成(實際上,據我所知它永遠不會傳遞給我的PHP服務器)。
如果我用一個標準字符串替換頁面內容,它工作正常。
在發送之前,我需要做類似於JavaScript的json_encode嗎?什麼東西可以將所有內容轉換爲html實體?
- 編輯 -
所以我剛剛發現在Firebug的「網絡」選項卡,它的顯示我的東西我沒有意識到:它顯示了所有正確的數據的GET請求......但服務器返回一個404。我不知道這是怎麼發生的,因爲PHP文件與我之前5秒鐘抓取的東西是一樣的。即使我試圖用.post(...,'json')更改.getJSON(),Firebug仍然顯示GET請求,而不是POST,所以現在讓我更加困惑。
多久實際字符串? JSONP是一個GET請求,所以你會遇到一些限制。 – 2011-05-01 05:36:10
啊,我明白你的意思了,你可能會做點什麼。在這個例子中,代碼長達3632個字符,這是相當長的(並且我不得不發送最長的)。由於getJSON不會發布,我可能需要深入挖掘... – 2011-05-01 05:41:49