我有以下代码与AngularJS和Web Api,生成请求错误请求生成,请帮助
<body ng-app="ProductAdd">
<script>
angular.module('ProductA**strong text**dd', [])
.controller('ProductAddController', ['$scope', '$http', function ($scope, $http) {
$scope.submit = function () {
if ($scope.Name) {
var product = {
"Name": $scope.Name,
"Category": $scope.Type,
"Price": $scope.Price
}
$http.post('http://localhost:1110/api/product', product).
success(function (data, status, headers, config) {
alert('Product Added Successfully');
}).
error(function (data, status, headers, config) {
alert("erro");
});
}
};
}]);
</script>
<h2>Add New Product</h2>
<form ng-submit="submit()" ng-controller="ProductAddController">
<div>Name:<input type="text" ng-model="Name" required></div></br>
<div>Type:<input type="text" ng-model="Type" required> </div> </br>
<div>Price:<input type="text" ng-model="Price"> </div> </br>
<div> <input type="submit" id="productsubmit" value="Submit" /></div> </br>
</form>
</body>
服务器端代码:
using Product_API.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Http.Cors;
namespace Product_API.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class ProductController : ApiController
{
public static Lazy<List<Product>> products = new Lazy<List<Product>>();//Static variable use only for demo, don’t use unless until require in project.
public static int PgaeLoadFlag = 1; // Page load count.
public static int ProductID = 4;
public ProductController()
{
if (PgaeLoadFlag == 1) //use this only for first time page load
{
//Three product added to display the data
products.Value.Add(new Product { ID = 1, Name = "bus", Category = "Toy", Price = 200.12M });
products.Value.Add(new Product { ID = 2, Name = "Car", Category = "Toy", Price = 300 });
products.Value.Add(new Product { ID = 3, Name = "robot", Category = "Toy", Price = 3000 });
PgaeLoadFlag++;
}
}
// GET api/product`enter code here`
public List<Product> GetAllProducts() //get method
{
//Instedd of static variable you can use database resource to get the data and return to API
return products.Value; //return all the product list data
}
// GET api/product/5
public IHttpActionResult GetProduct(int id)
{
Product product = products.Value.FirstOrDefault((p) => p.ID == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
// POST api/product
public void ProductAdd(Product product) //post method
{
product.ID = ProductID;
products.Value.Add(product); //add the post product data to the product list
ProductID++;
//instead of adding product data to the static product list you can save data to the database.
}
}
}
已在服务器端启用Cors但在控制台上出现以下错误:
无法加载资源:服务器响应状态为405(方法不允许)
ProductAdd.html:1 XMLHttpRequest无法加载
对预检请求的响应没有通过访问控制检查:否&#39;访问控制 - 允许 - 来源&#39;标头出现在请求的资源上。因此不允许原点访问。响应的HTTP状态代码为405。
任何帮助将不胜感激