Jquery.Get ashx页面

时间:2013-06-06 13:55:33

标签: asp.net ajax asp.net-mvc-3 jquery

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;
    }
  }

get response

我有查询1.9.0版本。响应标签不显示任何内容。 在我多次使用它之前,但现在我无法理解这个错误在哪里。

1 个答案:

答案 0 :(得分:4)

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

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