2010-03-26 45 views
-1
<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> 
+3

我低估了,因爲沒有嘗試在問題中提供有意義的額外信息。粘貼大量代碼並詢問「有什麼問題?」並不是那麼好。 – spender 2010-03-26 09:53:55

+0

@ 1gn1ter *您是否正在對提出請求的域進行此操作?你說這是「禁止」的,你準確得到了什麼錯誤信息? – 2010-03-26 09:58:42

回答

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(); 
+1

是的,你運行的域名在這裏很關鍵 - 據我所知,IE不允許跨域GET – 2010-03-26 13:05:42

1

如果你想呼籲第三方網站,你一個網址將需要查找JSONP(帶填充的JSON)選項。這些旨在使與第三方服務配合工作輕鬆一些。

請參閱jQuery.ajax以及其中有關「jsonp」的討論以獲取一些其他詳細信息。