私は単純なAPIを作成し、それを私のhtmlから呼び出そうとしています。私は今日も同様のことをしましたが、私はこれを動作させることはできません。それは単に404エラーを返します。C#を使用したAPI 404エラー
WebApiConfig.cs
namespace WebApplication1
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
:HTML
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
<script>
var uri = 'api/books';
$(document).ready(function() {
$.getJSON(uri)
.done(function (data) {
$.each(data, function (key, item) {
$('<li>', { text: formatItem(item) }).appendTo($('#books'));
});
});
});
APIコントローラ
using WebApplication1.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Web.Http;
namespace WebApplication1.Controllers
{
public class BookController : ApiController
{
[HttpGet]
[Route("api/books")]
public IHttpActionResult ShowAllProducts()
{
var db = new DbSearchQuery();
return Ok(db.LoadBooks());
}
}
}
EDITから
スクリプト
を追加し、あなたのルートは 'ホスト/ APIのように見えるようです/ api/Book'。あなたの最初のスラッグ 'api'をアクションメソッドのアノテーションで削除してみてください。さて、ブラウザのdevツールでリクエストを確認することができます。 –
LoadBooksが正しいjsonを返すと確信していますか? jQueryのドキュメントによると: 'JSONファイルに構文エラーが含まれている場合、私は同じからこれを引っ張っている概念ソリューションの別の証拠を作成したので、jQueryの1.4の時点では、要求は通常、私はかなり確信してsilently' – Hypnobrew
を失敗しますデータベースはクエリーがまったく同じものでした。私はちょうどこのapiが使用される別のソリューションに同じapiコントローラとjqueryを追加しました。 – Suavocado