$ .ajax在IE中不起作用,在Firefox中没问题

时间:2011-04-12 11:30:47

标签: ajax jquery get

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script language="javascript">  

    function funcSendSMS(numbers, smsmessage)
    {
    alert(numbers);
      var num = numbers;
      var msg = smsmessage;
  $.ajax({  
    type: "GET",  
    url: "http://sms.vrksolutions.com/messageapi.asp",  
    data: "username=xxxxxx&password=xxxxxx&sender=xxxxxx&mobile="+num+"&message="+msg,
    async: false,
    cache: false,
    success: function(resp){  
      // we have the response  
      alert("Server said:\n '" + resp + "'");  
    },  
    error: function(e){  
      alert('Error: ' + e);  
    }  
  });  
}  
</script>
<script  language="javascript">
funcSendSMS('<?php echo $phnos ?>', '<?php echo $smsmsg;?>');
</script>

我在IE中遇到以下错误

网页错误详情

  

用户代理:Mozilla / 4.0(兼容;   MSIE 7.0; Windows NT 6.1;三叉戟/ 4.0;   GTB6.6; SLCC2; .NET CLR 2.0.50727;   .NET CLR 3.5.30729; .NET CLR   3.0.30729; Media Center PC 6.0; InfoPath.2)时间戳:4月12日星期二   2011 13:22:58 UTC

消息:访问被拒绝。

行:138 查尔:355 代码:0 URI:https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

在这条车道上我找到了

在min.js文件中的代码下面

A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){
if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete"))
{C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);
A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}
r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();
if(w){b.username?w.open(h,b.url,b.async,b.username,b.password)
:w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&
a.contentType)w.setRequestHeader("Content-Type",

2 个答案:

答案 0 :(得分:0)

试试这个:

$(function(){
     funcSendSMS('<?php echo $phnos ?>', '<?php echo $smsmsg;?>');
});

function Load() {
            var a = false;
            try {
                var test = $('*');
                if(test == null)
                    throw 1;
            }
            catch (e) { a = true; }
            if (a){setTimeout(Load, 300);return;}

            funcSendSMS('<?php echo $phnos ?>', '<?php echo $smsmsg;?>');
        } 
setTimeout(Load, 300);

确保您没有通过AJAX进行跨域请求。

答案 1 :(得分:0)

http://sms.vrksolutions.com/messageapi.asp

我猜这是一个跨域脚本问题。出于安全原因,您无法从一个域到另一个域进行常规AJAX调用。 This article应该让您直接了解安全问题以及如何开始使用JSONP。