私はテストしている単純な ApiController を持っています:
namespace SMOnline.Controllers
{
public class DocumentosController : ApiController
{
Documentos[] docs = new Documentos[]
{
new Documentos { ID = 1, Tipo = 1, Designacao = "FC001"},
new Documentos { ID = 2, Tipo = 1, Designacao = "FC002"}
};
public IEnumerable<Documentos> GetAll()
{
return docs;
}
}
}
クライアント側では、これを別のドメインから呼び出しています
$.ajax({
async: true,
type: 'GET', //GET or POST or PUT or DELETE verb
url: apiUrl + 'Documentos/', // Location of the service
dataType: 'jsonp', //Expected data format from server
})
.done(function (data) {
// On success, 'data' contains a list of documents.
$.each(data, function (key, item) {
alert(item.Designacao);
})
})
.fail(function (jqxhr, textStatus, error) {
alert(textStatus + " " + error);
});
私の問題は、JSONP リクエストが常にエラーを返すことです。
parsererror エラー: jQuery20301899278084596997_1380125445432 は呼び出されませんでした
私は周りを探してきましたが、まだこれに対する解決策を見つけていません。
編集: フィドラーを使用すると、返される値は正しいヘッダーが200で、コンテンツがJSON配列であるように見えることを忘れていました。