好的,這是我的問題。Ajax的數據參數沒有送到服務器
我有一個HTML頁面,其中已初始化一個JavaScript變量。
<html>
<script>
MyVaribale = "Random Data";
</script>
<!-- Then I include an external js file to handle the processes in this html file -->
<script type="text/javascript" language="javascript" src="/scripts/some_random_script.js"></script>
</html>
現在,在該腳本中。我用MyVaribale
varible在Ajax請求有一個,像這樣:
$(document).ready(function() {
$.ajax(
url : '/some/random/url',
data : { MyVariable : MyVaribale }
etc ...
);
});
所以,在頁面加載,即Ajax代碼,立即執行。
在上面指定的url中,我檢查了MyVaribale
的存在,然後標記一個錯誤,如果它不存在,則爲必需值。
後端這樣的代碼(在Perl):
my $MyVariable = trim_param('MyVariable'); # trim_param() is a function that gets the passed data from ajax.
if ($MyVariable) { # Test if it exists
# Display something
}
else {
# Flag an error, which is my problem
}
現在我相信,在HTML頁面,該變量總是被填充(是100%確定)。但我總是得到標誌錯誤,該值不存在於我的後端代碼(上面的URL)中。
這樣的問題,
是否阿賈克斯一些問題與document.ready
,也許它執行變量已完成分配一個值之前?任何想法爲什麼發生這種情況因爲有時我的Ajax請求是成功的,有時不是
感謝
你可以發佈你的後端代碼嗎? – 2015-03-25 07:18:22
@HastaPasta編輯我的文章 – user2881063 2015-03-25 07:29:10
在'$(document).ready(function(){'如果你添加'console.log(MyVaribale)'你看到控制檯中變量的內容嗎? – 2015-03-25 07:31:51