为什么我的$ .ajax()在firefox中不起作用?

时间:2014-01-23 16:17:21

标签: jquery ajax firefox post

您好我有一个在我的网站上发布的代码,它在safari中完美运行,但在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,但仍然在firefox中会在控制台中给出错误(登录与否),而不是在safari中,如果你不是t登录,它会在控制台中说:'不登录'

3 个答案:

答案 0 :(得分:1)

这可能是由跨域引起的,如果你没有在http://m2s.es/下运行这个js代码,它将导致跨域问题,你将在ajax中出错。

答案 1 :(得分:1)

我看到的一个问题与错误无关

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

如果长度为零,则会出现错误

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

或只是使用jQuery

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

答案 2 :(得分:1)

当我登录到您的网站时,我在firefox中使用firebug获得了以下内容:

TypeError:输入为null:appnew.js(第40行)

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

在第39行,你试图得到一个id = input的元素,但由于你没有任何带有id输入行40的元素会给出错误。