从 jquery ajax 使用 OData 错误:"SCRIPT1004: SCRIPT1004: Expected ';'"



>我使用以下链接创建了一个 odata web api。 Microsoft 文档 OData V4 链接

所以我的解决方案包含两个项目

  1. ODATAWebApi
  2. 网络应用

请找到代码 网页应用代码

$(document).ready(function (e) {
$.ajax({
url: 'https://localhost:44340/',
type: 'GET',
crossDomain: true,
dataType: 'jsonp',
"headers": {
"accept": "application/json",
"Access-Control-Allow-Origin": "*"
},
success: function (data) {
alert('Data: ' + data);
},
error: function (request, error) {
console.log("Request: " + JSON.stringify(request));
alert("Request: " + JSON.stringify(request));
}
});

}(;

网页图片代码

public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
config.MapODataServiceRoute(
routeName: "odata",
routePrefix: null,
model: builder.GetEdmModel());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
// GET: odata/Products
[EnableQuery]
public IQueryable<Product> GetProducts()
{
return db.Products;
}

当我尝试使用 jquery ajax 使用此 odata 时 我得到以下错误

1) Request: {"readyState":4,"status":200,"statusText":"load"}
2) SCRIPT1004: SCRIPT1004: Expected ';'     localhost:44340 (1,18)
{"@odata.context":"https://localhost:44340/$metadata",
"value":[{"name":"Products","kind":"EntitySet","url":"Products"}]}

请帮助我

感谢同事的帮助,我能够做到。.

如果您使用的是 OData V4,

使用 System.Web.Http.OData 替换;随着使用 Microsoft.AspNet.OData;

在 WebApiConfig.Register 方法中添加以下代码

ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
var corsAttr = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(corsAttr);
config.MapODataServiceRoute("ODataRoute", "api", builder.GetEdmModel());

下面是阿贾克斯代码

$.ajax({
url: 'https://localhost:44340/api/Products(1)',
type: 'GET',
crossDomain: true,
dataType: 'json',      
success: function (data) {
alert('Data: ' + data);
},
error: function (request, error) {
console.log("Request: " + JSON.stringify(request));
alert("Request: " + JSON.stringify(request));
}
});

URL:https://localhost:44340/api/Products(1( 这奏效了..

最新更新