[英]Trigger php script with ajax call
我想對一個php文件進行ajax調用; 最終,該php文件將寫入mongodb數據庫。 目前,我正在調試,並且希望打開php文件並寫入文本文件。 當我從命令行運行該php文件時,該文件有效。 類似地,ajax調用返回“成功”消息。 然而,AJAX調用不會導致新的文本文件的寫作。
從我的javascript文件的相關部分:
$.ajax({
type: "POST",
url: "jq.php",
data: {
'myString': "blahblah",
},
success: function(data) {
alert('worked');
},
error: function(){
alert('failed');
}
});
php文件:
<?php
$file=fopen("welcome.txt","w");
$str = "let's hope this works.";
fwrite($file, $str);
fclose($file);
?>
我還嘗試將以上內容包裝在:if($ _POST ['ajax']){...}中。
為了進行調試,請不要從命令行運行腳本,而只需在瀏覽器中直接打開它即可。 當您使用命令行時,您是以用戶身份(可能是“ root”)執行腳本,但是如果從瀏覽器中調用該腳本,則由apache(或您使用的任何網絡服務器)執行它是自己的用戶。
最有可能的是, 您自己的用戶帳戶具有寫權限,但apache-user沒有權限 -因此命令行可以使用,但瀏覽器的調用則沒有。
順便說一句:這並不是替換mongo-db(或任何其他數據庫)交互的好測試案例,您不必擔心文件系統權限問題,而可以遇到其他數百個問題。
您應該始終使用:
$file=fopen("welcome.txt","w");
if ($file) { // because fopen can return FALSE on error
$str = "let's hope this works.";
fwrite($file, $str);
fclose($file);
}
else {
// something wrong!
}
編輯還檢查E_WARNING-它可以向您顯示問題,您可以通過error_reporting(E_ALL)激活它。 如果服務器禁用了它,或者在php日志文件中查找錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.