Запросы jquery ajax запрещены в IE. Как исправить (любой обходной путь)? - PullRequest
0 голосов
/ 26 марта 2010
 <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 ]

1 голос
/ 26 марта 2010

Если вы пытаетесь вызвать URL на стороннем сайте, вам нужно обратиться к параметрам JSONP (JSON with Padding).Они предназначены для упрощения работы со сторонними сервисами.

См. jQuery.ajax и обсуждение "jsonp" там для некоторых дополнительных деталей.

0 голосов
/ 26 марта 2010

Где работает этот код? Если вы не пользуетесь 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...