未捕获的SyntaxError:意外的标记<

我是web服务新手。 在我的项目中,当我试图运行时,我连接了Web Service(一切都已准备就绪),我得到了下面的错误。

错误 - >

Uncaught SyntaxError: Unexpected token <

Web服务和我的页面处于相同的解决方案但不同的项目。

相关代码如下:

jQuery (URL:11761)

 function GetAllCategories() {
   $.ajax({
      url: "http://localhost:12015/myWebService.asmx?op=GetCategories",
      type: "POST",
      dataType: "jsonp",
      data: "{}",
      contentType: "application/jsonp; charset=utf-8",
      success: function (data) {
          var categories = data.d;
          $.each(categories, function (index, category) {
              alert(category.CategoryId);
          });
      },
      error: function (e) {
          alert(e.message);
      }
   });
}

Web服务 (URL:12015)

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Categories>  GetCategories()
{
    //Code
}

在问这里之前,我已经通过这个链接(不能理解它)

编辑:

从这篇文章得到了替代答案。


通过您的网站和Web服务在两个不同的项目中运行,突破了相同的来源策略。

Webservice和网站移到同一个项目中 ,它应该可以工作。

此外你的JavaScript是错误的,它应该是

function GetAllCategories() {
   $.ajax({
      url: "http://localhost:12015/myWebService.asmx/GetCategories",
      type: "POST",
      dataType: "jsonp",
      data: "{}",
      contentType: "application/jsonp; charset=utf-8",
      success: function (data) {
          var categories = data.d;
          $.each(categories, function (index, category) {
              alert(category.CategoryId);
          });
      },
      error: function (e) {
          alert(e.message);
      }
   });
}

操作位仅用于在Web浏览器中进行测试。 删除它,你应该很好。

PS @andyb公平地建议了这个答案,但不清楚这是否是问题所在! UPDATE

今天我已经做了一些关于这个问题的讨论,我澄清了我认为我会分享的几点。 你必须POST到一个.asmx服务,你不能做这个跨域。 你可以通过域而不是POST GET ,所以这是我相信的路由问题。

您可以启用GET ,请参阅如何通过GET?调用ASMX Web服务。 但是,这似乎是一个坏主意,因为它会暴露你的webservice所有和各式各样!


不是你的问题的直接答案 - 但以下是我必须做的解决类似问题

如何在ASP.Net 2.0中强制数据类型为JSON

问题是没有安装和配置ASP.Net Ajax

链接地址: http://www.djcxy.com/p/45953.html

上一篇: Uncaught SyntaxError: Unexpected token <

下一篇: jquery Uncaught SyntaxError: Unexpected token :