[英]AJAX Call Not Sending Success Response
//MAKE AJAX CALL TO REPOPULATE TABLE
var newData = 'page_number=1&type=2';
$.ajax({
type: 'POST', // HTTP method POST or GET
url: 'http://www.myurl.net/form_validate.php', //Where to make Ajax calls
dataType:'text', // Data type, HTML, json etc.
data:newData, //post variables
success:function(response){
//REFORMAT UPON SUCCESSFUL AJAX CALL
alert(response);
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr + " " + ajaxOptions + " " + thrownError); //throw any errors
}
});
我放入PHP文件中的所有內容是:
<?php echo "test"; ?>
當我直接轉到該文件時,它會回顯“測試”。 當我嘗試單擊按鈕來運行AJAX函數時,出現以下錯誤:
[object Object] error
在警報窗口中。 我將絕對URL放入文件中是因為我認為我正在使用的相對鏈接是錯誤的,但是現在看來這是另一個問題。 我是否忽略了一個簡單的語法錯誤? 抱歉,如果這是超級基礎,但是經過很長時間的研究之后,我似乎無法弄清楚。 謝謝你的幫助。
問題是您的絕對網址。 某些瀏覽器在處理絕對URL時遇到問題,將其視為跨域請求, 即使不是跨域請求也將其阻止。 您應該嘗試使用相對網址
問題可能出在url
,請嘗試使用相對路徑而不是絕對路徑。 您命名的文件與.js
文件位於同一文件夾中,因此請嘗試
url: '/directory_path_to_the_same_folder_as_the_JS_file/form_validate.php',
嘗試使用jQuery.post代替 done
。
例如:
jQuery.post('form_validate.php', data).done(
function(data, textStatus, jqXHR) {
alert(jqXHR.responseText);
}).fail(function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}).complete(function() {
// Common code when request completes
});
如果您的錯誤是[object Object] error NOT FOUND
找不到[object Object] error NOT FOUND
則原因是AJAX中指定的url不正確。
如果您的錯誤是[object Object] error INTERNAL SERVER ERROR
,則是由於服務器文件即php文件中的錯誤,錯誤(如未正確定義的變量等)引起的。
希望這可以幫助
謝謝
function abc(){
var ret=true;
$.ajax({
type: 'POST',
url: 'send_password.php',
data: 'mail_to=mymail&new_password=pwd',
async:false,
success: function(response){
},
error: function(r){
ret=false;
}
});
return ret;
}
alert(abc());
看看這個提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.