Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqueryrestfulput请求_Jquery_Rest_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack - Fatal编程技术网 servicestack,Jquery,Rest,servicestack" /> servicestack,Jquery,Rest,servicestack" />

jqueryrestfulput请求

jqueryrestfulput请求,jquery,rest,servicestack,Jquery,Rest,servicestack,我试图调用ServiceStack中开发的restful服务。我成功地调用了Get(s),但我很难调用Put或Post。 我的脚本来自客户端 我的测试是在fiddler上完成的,以确保服务器端的API正常工作 我的服务代码: 和配置代码: Add(newcorsfeature()) 从.ajax()方法和“type”参数的jQuery文档页面: 键入(默认值:“获取”) 类型:字符串 请求的类型(“POST”或“GET”),默认为“GET”。注意:此处也可以使用其他HTTP请求方法,如

我试图调用ServiceStack中开发的restful服务。我成功地调用了Get(s),但我很难调用Put或Post。 我的脚本来自客户端

我的测试是在fiddler上完成的,以确保服务器端的API正常工作

我的服务代码:

和配置代码:

Add(newcorsfeature())


从.ajax()方法和“type”参数的jQuery文档页面:

键入(默认值:“获取”)
类型:字符串
请求的类型(“POST”或“GET”),默认为“GET”。注意:此处也可以使用其他HTTP请求方法,如PUT和DELETE,但并非所有浏览器都支持它们


从.ajax()方法的jQuery文档页面和“type”参数:

键入(默认值:“获取”)
类型:字符串
请求的类型(“POST”或“GET”),默认为“GET”。注意:此处也可以使用其他HTTP请求方法,如PUT和DELETE,但并非所有浏览器都支持它们


我已将类型设置为“PUT”,我还将其设置为覆盖标题。如果在浏览器中运行此操作,浏览器是否支持它?如果您使用网络检查器(例如在Firefox的Firebug或Chrome开发工具中),它是否显示发送的PUT请求?另外,请求是否正确设置了“Accept:application/json”头,以确保响应是json格式的?如果没有,您可能需要在请求中添加一个额外的查询字符串参数“format=json”。我已经使用了所有设置,我可以通过Fiddler调用客户端,但不能通过浏览器。问题可能在于我在servicestcak中配置COR的方式。是否阅读了有关stack的所有相关主题,并尝试了所有建议,但到目前为止运气不佳,需要更多地阅读servicestack和CORS。啊,我看到可能跨域请求被阻止了?好的,我卡住了。我尝试了servicestack端的所有建议,以确保API允许跨域请求,而不会带来任何运气。我想提到的是,我正在通过VisualStudioDesigner运行Rest服务和Web应用程序,这意味着它使用IIS express。不确定这是否有区别?我已将类型设置为“PUT”,我还将其设置为覆盖标题。如果在浏览器中运行此操作,浏览器是否支持它?如果您使用网络检查器(例如在Firefox的Firebug或Chrome开发工具中),它是否显示发送的PUT请求?另外,请求是否正确设置了“Accept:application/json”头,以确保响应是json格式的?如果没有,您可能需要在请求中添加一个额外的查询字符串参数“format=json”。我已经使用了所有设置,我可以通过Fiddler调用客户端,但不能通过浏览器。问题可能在于我在servicestcak中配置COR的方式。是否阅读了有关stack的所有相关主题,并尝试了所有建议,但到目前为止运气不佳,需要更多地阅读servicestack和CORS。啊,我看到可能跨域请求被阻止了?好的,我卡住了。我尝试了servicestack端的所有建议,以确保API允许跨域请求,而不会带来任何运气。我想提到的是,我正在通过VisualStudioDesigner运行Rest服务和Web应用程序,这意味着它使用IIS express。不确定这是否有区别?
function savePartner(e) {
            $.ajax({
                type: "PUT",
                contentType: "application/json; charset=utf-8",
                headers: {
                    'X-HTTP-Method-Override': 'PUT'
                },
                url: "http://localhost:49190/test",
                data: partnerInfoToJSON(),
                complete: function (data) { alert("complete"); },
                success: function (data) { alert("done"); },
                error:  function (data) { alert("failed");},
                dataType: "json"
            });
        }

        function partnerInfoToJSON() {
            return JSON.stringify({
                "Name": "TEST"
            });
        };
[Route("/test/", "Put")]
public class TestDTO
{
    public string Name { get; set; }
}

public class TestDTOResponse
{
    public long ID { get; set; }
    public ServiceStack.ServiceInterface.ServiceModel.ResponseStatus ResponseStatus { get; set; }
}

[EnableCors(allowedMethods: "GET,POST,PUT,DELETE")]
public class TestService : ServiceStack.ServiceInterface.Service
{

    [EnableCors(allowedMethods: "GET,POST,PUT,DELETE")]
    public void Options(TestDTO testDTO)
    { 

    }

    public object Put(TestDTO testDTO)
    {
        try
        {
            return "Hallo World";
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
            RequestFilters.Add((httpReq, httpRes, requestDto) =>
                {
                    if (httpReq.HttpMethod == "OPTIONS")
                        httpRes.End();
                });
            base.SetConfig(new EndpointHostConfig
            {
                DebugMode = true,
                DefaultContentType = "application/json",
                GlobalResponseHeaders = {
                        { "Access-Control-Allow-Origin", "*" },
                        { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
                        { "Access-Control-Allow-Headers", "Content-Type, origin, accept" },
                }
            });