[英]Why is this ajax request failing?
這可能是一個簡單的問題,但我不明白為什么會這樣。 這是簡化的代碼:
Ajax調用:
mydata = {'action':'update','options':options};
console.log(mydata);
$.ajax({
url: 'dt/scripts/stoplight.php',
data: mydata
}).success(function(data){
if (data == 1) {
alert("Options Updated");
}else{
alert(data);
}
})
我的數據如下:
action
"update"
options
Object { OMS-S="0", OMS-N="0", OHS="0"}
為了澄清,這是來自瀏覽器控制台的復制和粘貼。 該對象是一個有效的對象,並通過get傳遞:
https://*pathtomysite*/dt/scripts/stoplight.php?action=update&options%5BOMS-S%5D=0&options%5BOMS-N%5D=0&options%5BOHS%5D=0
這個請求無限期地掛起。
https://*pathtomysite*/dt/scripts/stoplight.php?action=update&options%5BOMS-S%5D=0&options%5BOMS-N%5D=0&options%5BOHS%5D=1
進一步澄清。 選項生成如下:
$("#stoplight_apply").click(function(){
var radios = $("#stoplight_options").find("input:radio:checked");
options = {};
$.each(radios, function( key, value) {
options[value.name] = value.value;
});
set_stoplight_options(options);
})
這個工作正常。
如果將這些選項中的任何一個設置為0以外的任何選項,則php腳本將會運行得很好! 如果所有這些都是0,那么它會無限期地掛起並加載。
我注釋掉了可能導致問題的所有PHP,所以目前腳本執行此操作:
$action = $_GET['action']; //Get or update
print_r($_GET['action']);
print_r($_GET['options']);
為什么會這樣?
我想我發現了這個問題。 我所做的就是將'options'改為'test',將php更改為print_r($ _ GET ['test']),它運行正常。 WTH?
嘗試
使用$_POST
而不是$_GET
$action = $_POST['action'];
print_r($_POST['action']);
print_r($_POST['options']);
Ajax:
var mydata = {'action':'update','options':options};
$.ajax({
type: 'POST',
url: 'dt/scripts/stoplight.php',
data: mydata,
success: function(data){
if(data.length) {
alert('done')
}
}
});
console.log(data);
等console.log(data);
看看你得到了什么。 if(data.length)
if(data.sucess==='YeahDone')
(JSON)無論如何..(通過PHP腳本檢查是否所有成功echo 'YeahDone';
例如.. 嘗試
options
Object { "OMS-S":"0", "OMS-N":"0", "OHS":"0"}
現在我明白為什么引用是一個好習慣:P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.