2014-01-23 3 views
0

Привет У меня есть код для публикации на моем сайте, и он отлично работает в сафари, но в firefox нет. Я не знаю эту проблему, потому что код очень прост ... Вот код:

<input type="text" placeholder="mmm..." class="bar" name="txt" /> 
<input type="hidden" value="" name="map" /> 
<button onclick="post('2')">send</button> 
<div id="prueba"></div> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
    function post(id) { 
     var txtvalue = document.getElementsByName('txt')[0].value; 
     if (document.getElementsByName('map')[0]) { 
      var mapv = document.getElementsByName('map')[0].value; 
     } else { 
      var mapv = ""; 
     } 
     $('#prueba').html('txt:' + txtvalue + '<br>map:' + mapv); 
     $.ajax({ 
      type: "POST", 
      url: "http://m2s.es/app/api/connect/chat.php", 
      data: { 
       txt: txtvalue, 
       map: mapv, 
       id: id 
      }, 
      dataType: 'text', 
      beforeSend: function() { 
       console.log('connecting...') 
      }, 
      complete: function() { 
       console.log('procesing...') 
      }, 
      success: function(result) { 
       console.log(result); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       console.error(textStatus); 
      } 
     }) 
    } 
</script> 

Для этого процесса PHP должность, вы должны войти в систему для http://m2s.es/app, но до сих пор в светлячок выдает ошибку в консоли (с логином или нет), а не как в сафари, если вы не заходите в систему, он скажет в консоли: «не вход»

+1

Что такое сообщение об ошибке в консоли, которое дает Firefox? – epascarello

+0

Он просто говорит «Ошибка» – user3228573

ответ

1

это может быть вызвано crossdomain, если вы не сделали этого, t запустите этот код js под http://m2s.es/, это вызовет проблему crossdomain, и вы получите ошибку в ajax.

+1

. Мне кажется, что это дикие предположения. –

+0

И почему в Safari работает отлично? Есть ли способ заставить его работать, не входя в домен? – user3228573

+0

@ user3228573 это может отличаться от браузера к браузеру. jsonp - это способ решить проблему crossdomain – leo108

1

Ну один вопрос, который я вижу, не связана с ошибкой является

if (document.getElementsByName('map')[0]) { 

, если длина равна нулю, чем у вас будет ошибка

var map = document.getElementsByName('map'); 
var mapv = map.length ? map[0].value : ""; 

или просто использовать JQuery

var mapv = $('[name="map"]').val(); 
1

Когда я вошел на ваш сайт, я получил следующее в firefox, используя firebug:

TypeError: вход нуль: appnew.js (строка 40)

39 var input = document.getElementById('input'); 
40 input.onkeyup = function() { 

В строке 39 вы пытаетесь получить элемент с идентификатором = вход, но так как вы не имеете любой элемент с входной идентификатор линии 40 дает ошибку.

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