javascript – ajax调用返回值和我的html页面

前端之家收集整理的这篇文章主要介绍了javascript – ajax调用返回值和我的html页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前正在使用以下代码对我的控制器执行ajax调用

$.ajax({
    type: "POST",url: "@Url.Action("uploadImage","Item")",data: '{ "imageData" : "' + image + '" }',contentType: "application/json; charset=utf-8",dataType: "json",success: function (success) {
        alert('Success ' + success.responseText);
    },error: function (response) {
        alert(response.responseText);
    }
});

这是控制器:

[HttpPost]
public ActionResult uploadImage(string imageData)
{
    string imageName = Guid.NewGuid().ToString();

    try
    {
        ProductManager pm = new ProductManager();
        pm.AddNewProduct(imageName);
    }catch(Exception e)
    {
        writeToLog(e);
    }
    return Json(new { success = imageName },JsonRequestBehavior.AllowGet);
}

它到达控制器并且AddNewProduct函数成功运行.问题是我希望它返回在控制器中创建的图像名称.这也可以,但是它也会返回我完整的html页面.
我在成功时发出警告,并在发生错误时发生错误,但不知怎的,它总是在错误中出现以下警告:

enter image description here

显示了我需要的价值,但为什么它也会返回我的完整HTML?

最佳答案
>您不需要JsonRequestBehavior.AllowGet.这必须仅用于GET请求,以保护您免受涉及JSON请求的特定攻击.在您的代码中,您使用的是POST动词.
>您应该使用以下代码获取从服务器收到的成功字符串.

成功:功能(响应){
  alert(‘Success’response.success);
}

猜你在找的HTML相关文章