[英]javascript: weird behavior of == for strings
這是我的代碼:
$.ajax({
type: "POST",
url: "/myURL",
success: function(msg){
alert(msg);
// aler prints success, but msg != "success" ????
if (msg == "success") {
//my code
} else {
//other code
}
}
});
發生了一些奇怪的事情:警報對話框顯示成功,但是msg!=“成功”。 我想念什么? 我的php方法只是根據某些操作返回“成功”或“失敗”。
將此放在條件句之前:
msg= jQuery.trim(msg).toLowerCase();
假設您使用的代碼是JQuery
嘗試:
if (msg.trim().toLowerCase() == "success")
{...}
如果不支持跨瀏覽器,則可能必須對trim
方法進行原型設計。
簡而言之,您可以將===用於比較。 可能有用。
文本周圍可能會有空白。
我可以建議以一種可靠的方式來解決此問題,以特定格式(例如JSON)返回數據。
加
dataType:'json'
到$ .ajax配置,並有PHP輸出
header('Content-Type: application/json');
echo json_encode(array('msg'=>'success'));
當然也可以使用'msg'=>'failure'
。
然后在JS中
success: function(data){
alert(data.msg);
if (data.msg == "success") {
//my code
} else {
//other code
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.