您好我有一个在我的网站上发布的代码,它在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登录,它会在控制台中说:'不登录'
答案 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的元素会给出错误。