如何通过AJAX调用将URL作为参数传递给APIController?

时间:2016-09-27 14:19:48

标签: ajax url asp.net-web-api parameters controller

我正在尝试将URL作为字符串参数传递给API Controller POST方法。但是,由于URL中的特殊字符“:”,我收到“潜在危险请求”错误。

网址格式为'http | s:// xxxxxxxxx / ... / ....等。

我尝试过encodeURI,但它仍然失败。

$.ajax({
    type: "POST",
    url: "http://localhost:101/api/Sample/" + encodeURI(url),
    contentType: "application/json; charset=utf-8",
    dataType: "json"....
})

1 个答案:

答案 0 :(得分:0)

假设您要将数据发布到“http://localhost:101/api/Sample/”,则必须将encodeURI(url)添加到帖子请求的请求正文中。比如这样。

var formData = {urlParameter:encodeURI(url)}; //Json 
$.ajax({
    url : "http://localhost:101/api/Sample/",
    type: "POST",
    data : formData,
    success: function(data, textStatus, jqXHR)
    {
        //handle success
    },
    error: function (jqXHR, textStatus, errorThrown)
    {
         //Handle error
    }
});

发布到的Sample方法必须具有与formData变量中json中指定的参数相对应的参数。