2013-08-20 7 views
0

У меня есть этот JQuery Ajax функции:Ошибка с Internet Explorer и JQuery Ajax

$.ajax({ 
    url: '/private_cloud/add_app/'+school_id+'/'+app_id, 
    dataType: "json", 
    async: false, 
    success: function(data){ 
     if(data.status == 1) 
     { 
      console.log(data.status); 
     } 
    }, 
    error: function(error){ 
     alert("Error"); 
    } 
}); 

Когда я использую хром, и светлячок, это работает прекрасно. Но когда я использую Internet Explorer, он отображается в консоли «1», но данные даже не были вставлены в базу данных.

Это мой код в PHP:

public function add_app($school_id = NULL, $app_id = NULL) 
{ 
    if($this->School->save($get_school)) 
    { 
     echo '{"status":"1"}'; 
    } 
    else{ 
     echo '{"status":"0"}'; 
    } 

    die; 
} 
+1

jqxhr на самом деле имеет «статус» переменную, которая уже используется в AJAX (хотя не рекомендуется в настоящее время), чтобы указать успех запроса XHR - это на самом деле все еще используется, вам следует избегать этого и использовать что-то вроде «myStatus» для отправки в объект данных jqxhr, а не использовать «статус», поскольку ваше имя свойства – sajawikio

+0

благодарит за предложение. – comebal

ответ

1

Вы не указали тип запроса, так что это недобросовестный поэтому GET ИЭ (наиболее вероятно) кэширование ответа. Добавить

type: 'POST' 

для вашего AJAX объекта конфигурации, например

$.ajax({ 
    url: '/private_cloud/add_app/'+school_id+'/'+app_id, 
    type: 'POST', 
    // etc 
+0

БОЛЬШОЙ СПАСИБО !!!! – comebal

+0

, хотя я думал, используя тип: «POST» предназначен только для публикации данных с использованием функции .serialize(). Но в любом случае он решил мою проблему. еще раз спасибо. – comebal

+0

@comebal См. Http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html – Phil

Смежные вопросы