2

JS方法

$.post('http://localhost:21067/HandlerServices/Product/ProductHandler.ashx', 'action=productlist', function (data) { console.log(data); console.log('hi') });

此 ashx 代码正在运行,但我没有收到任何回应

这是 ashx.cs 代码

context.Response.ContentType = "text/plain";

  if (!string.IsNullOrEmpty(context.Request.QueryString["action"]))
  {
    string action = context.Request.QueryString["action"];

    switch (action.ToLower())
    {
      case "productlist":

        context.Response.Write("ersoy");
        break;
    }
  }

得到回应

我有查询 1.9.0 版本。作为响应标签没有出现任何东西。在我多次使用它之前,但现在我无法理解错误在哪里。

4

1 回答 1

4

您违反了same origin policy restriction浏览器中内置的内容。包含此 javascript 文件的 ASP.NET MVC 应用程序托管在其上,http://localhost:2197但您尝试执行http://localhost:21067无法正常工作的 AJAX 请求。

有一些解决方法,例如使用JSONP(仅适用于 GET 请求)或CORS(仅适用于支持它的现代浏览器)。如果由于某种原因您不能使用其中一些技术,您可以在 ASP.NET MVC 应用程序中使用服务器端控制器操作,该操作将执行对远程域的实际调用并充当两者之间的桥梁。然后从您的客户端脚本您将 AJAX 请求发送到您自己的域。

于 2013-06-06T14:00:22.280 回答