MUI.Ajax 调用WebService报错?实在找不到问题。 10C

mui.ajax 调用 WEB Service 报错

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8848' is therefore not allowed access. The response had HTTP status code 500.

图片说明

function getData() {
                var result = "";
                mui.ajax("http://mobile.china-crown.com:8088/Service.asmx/GetCustomerPageList", {
                    data: {
                        "PageIndex": "1",
                        "SiteID": "28822"
                    },
                    dataType: 'json',
                    type: 'get',
                    timeout:10000,//超时时间设置为10秒; 
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    success: function(data) {
                        mui('#Custlist').pullRefresh().endPullupToRefresh(true);
                        //下面这坨都是在拼dom 你可以用jquery 或者是你所熟悉的angular,vue双向绑定
                        var model = JSON.parse(data);
                        $.each(model, function(i, value) {
                            result += '<li class="mui-table-view-cell mui-media">' +
                                '<a href="javascript:;">' +
                                '<div class="mui-media-body">' + value.CustName + '</div>' +
                                '</a>' +
                                '</li>';
                        })
                        var element = document.getElementById("CustomerUlID");
                        element.innerHTML = result;

                    },
                    error: function(xhr, type, errorThrown) {
                        //异常处理;
                        console.log(type);
                    }
                });



            }


[WebMethod]
        //[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public void GetCustomerPageList(int PageIndex, int SiteID)
        {
            string JsonStr = "";
            try
            {
                int PageSize = ConfigurationManager.AppSettings["PageSize"].ObjectToInt32();
                //总数量
                int Count = this.GetCustomerListCount(SiteID);

                PageInfo PageResult = new PageInfo(PageIndex, PageSize, Count);


                if (!PageResult.IsBottom)
                {

                    string con = SystemHelper.GetAccountSetConnect();
                    string Sqlcon = ConfigurationManager.ConnectionStrings[con].ConnectionString;

                    SqlParameter[] para = {
                                  new SqlParameter("@SiteID", Convert.ToInt32(SiteID)),
                                   new SqlParameter("@BeginPage", Convert.ToInt32(PageResult.BeginPage)),
                                    new SqlParameter("@EndPage", Convert.ToInt32(PageResult.EndPage))
                                  };

                     DataTable dt = SQLDBHelper.ExecuteQueryDt(Sqlcon, "up_Sel_CustomerList", CommandType.StoredProcedure, 0, para);
                     JsonStr = JsonHelper.DataTableToJson(dt);


                     Context.Response.Charset = "GB2312"; //设置字符集类型  
                     Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                     Context.Response.Write(JsonStr);
                     Context.Response.End();  


                }
            }
            catch (Exception ex)
            {

            }
            //return JsonStr;
        }

2个回答

Access-Control-Allow-Origin 跨域了
用 dataType: 'jsonp' 试试

浏览器跨域问题,后台设置一下就行,不过如果你是要生成APP的话就不用了,但是在浏览器中调试需要解决跨域。

qq_36022290
zhenyu-s5 回复: 如果你用的是别人的接口,并且不想要自己做跨域,可以试试这个:https://bird.ioliu.cn/#interface
大约一年之前 回复
qq_36022290
zhenyu-s5 回复xi_de: 我是做前端的,只做过nodejs的跨域,不过我试过用nginx做代理做了个小说阅读(追书神器的api),你可以试试。
大约一年之前 回复
xi_de
xi_de 你有解决方案吗,可以提供给我参考一下吗
大约一年之前 回复
xi_de
xi_de 我把项目放到webService中本地访问都可以,就是在外面不行
大约一年之前 回复
xi_de
xi_de XMLHttpRequest cannot load http://mobile.china-crown.com8088/Service.asmx/GetCustomerPageList. Response for preflight has invalid HTTP status code 500
大约一年之前 回复
xi_de
xi_de 在后台web.config 你设置了 <!--解决跨域请求 --> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" /> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" /> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> 配置,但是还是报错
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问