相关疑难解决方法(0)

使用ASP.NET Web API的JSONP

我正在使用Web API在ASP.MVC MVC 4中创建一组新服务.到目前为止,这很棒.我已经创建了该服务并使其工作,现在我正在尝试使用JQuery来使用它.我可以使用Fiddler取回JSON字符串,它似乎没问题,但是因为该服务存在于一个单独的站点上,所以尝试使用"不允许"的JQuery错误调用它.所以,这显然是我需要使用JSONP的情况.

我知道Web API是新的,但我希望有人可以帮助我.

如何使用JSONP调用Web API方法?

jquery jsonp asp.net-mvc-4 asp.net-web-api

136
推荐指数
7
解决办法
6万
查看次数

asp.net Webforms [WebMethod]端点上的CORS端点

我正在尝试将一些带[WebMethod]注释的端点函数添加到Webforms样式的Web应用程序(.aspx和.asmx).

我想用这些端点注释[EnableCors],从而获得所有良好的ajax-preflight功能.

VS2013接受注释,但端点仍然不适合CORS.(当使用同源而非交叉原点时,它们工作正常).

我甚至不能让它们与下行和脏的交叉起源

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
Run Code Online (Sandbox Code Playgroud)

方法 - 我的浏览器拒绝响应,并且不显示跨源响应标头.

如何在这些[WebMethod]端点中获取CORS功能?

.net c# webforms cors

14
推荐指数
1
解决办法
9306
查看次数

asmx web服务 - jQuery ajax post json(500错误) - CORS(Access-Control-Allow-Origin设置为*)

这个主题似乎是一个拥有一百万个"解决方案"的主题,结果更加复杂.所以请稍微松一口气,因为我会试着展示发生了什么,我正在使用什么以及我是如何尝试解决这个问题的.

我的测试环境正在运行IIS6 asp.net 2.0,我已经设置好了

'Access-Control-Allow-Origin' *
Run Code Online (Sandbox Code Playgroud)

我还为.asmx扩展设置了动词

"GET,HEAD,POST,DEBUG,OPTIONS"
Run Code Online (Sandbox Code Playgroud)

通过jQuery v1.7.2 ajax()调用我能够从服务器获取xml文件,并POST到基本服务,返回一个带有预期结果跨域的字符串.所以我知道至少部分我的跨域请求正在发挥作用.

当我开始扩展它并使用json将数据发布到服务时,我的问题就出现了

我有一个简单的asmx webservice方法:

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public SubResponse HelloWorldX(SubRequestXX SubReq)
        {
            SubResponse sr = new SubResponse();

            sr.resultCode = "777";
            sr.resultMsg = "hello - " + SubReq.EmailAddress;

            return sr;
        }
Run Code Online (Sandbox Code Playgroud)

非常简单,并没有太多魔法发生在那里,我想要做的就是传递'SubRequestXX'对象,现在只需验证它到达那里并做出回应.

Using jQuery:

    $.ajax({
        type: "POST",
        url: "http://somedomain/subscription/MyService.asmx/HelloWorldX",
        processData: false,
        data: '{ "SubReq" : {"EmailAddress":"user@test.com"} }',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        cache: false,
        success: function(data, textStatus, jqXHR) {
            ajaxSucccess3(data, textStatus, jqXHR);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log("Retrieve Hello …
Run Code Online (Sandbox Code Playgroud)

jquery json iis-6 web-services cross-domain

6
推荐指数
1
解决办法
4832
查看次数