在IE中,jquery ajax请求是禁止的。如何修复(任何解决方法)?

时间:2010-03-26 09:49:24

标签: asp.net-mvc internet-explorer jquery

 <script type="text/javascript">
        $(function () {
            $("select#oblast").change(function () {
                var oblast_id = $("#oblast > option:selected").attr("value");
                $("#Rayondiv").hide();
                $.ajax({
                    type: "GET",
                    contentType: "application/json",
                    url: "http://site.com/Regions.aspx/FindGorodByOblastID/",
                    data: 'oblast_id=' + oblast_id,
                    dataType: "json",
                    success: function (data) {                       
                        if (data.length > 0) {

                            var options = '';
                            for (p in data) {
                                var gorod = data[p];
                                options += "<option value='" + gorod.Id + "'>" + gorod.Name + "</option>";
                            }
                            $("#gorod").removeAttr('disabled').html(options);

                        } else {

                            $("#gorod").attr('disabled', false).html('');
                        }
                    }
                });
            });
        });
</script>

2 个答案:

答案 0 :(得分:1)

如果您尝试在第三方网站上调用网址,则需要查看JSONP(带填充的JSON)选项。这些旨在使第三方服务更容易使用。

有关其他详细信息,请参阅jQuery.ajax以及对“jsonp”的讨论。

答案 1 :(得分:0)

此代码在哪里运行?除非你在http://site.com/,否则出于安全原因这不起作用。

如果是这种情况,您是否有任何方式提出请求并做任何服务器端?

也许将请求发送到您在网站上设置的某个页面,并在其后面的代码中完成工作:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://example.com");
request.Method = "GET";
request.Headers["Accept-Encoding"] = "gzip,deflate";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String html = new StreamReader(response.GetResponseStream()).ReadToEnd();
response.Close();