我在使用 Play Framework 中的 Json 呈现的数组发送 ajax 请求时遇到了几个问题。首先,看看我的代码。
$('#changeCategory').click(function(){
var categoryOrder = $('#categories').sortable('toArray');
$.ajax({
'type': 'POST',
'url': '@routes.ImageUploader.categoryOrderUpdate()',
'data': {'categoryOrder': categoryOrder},
'dataType': 'json',
'success': function(data){
alert('success_' + data);
}
});
});
我尝试将 ajax 请求作为“POST”发送到 ImageUploader.categoryOrderUpdate()。categoryOrder
是一个像下面这样的数组。
当我首先尝试此代码时,我收到一个错误Action Not Found For request 'GET /categoryOrderUpdate'
这是意外错误,因为我将我的 ajax 请求定义为 POST 并且还在POST /categoryOrderUpdate controllers.ImageUploader.categoryOrderUpdate()
我的路由文件中定义。所以,这是我的第一个问题。为什么我的 ajax 请求不通过 'POST' 发送?
另外,有没有办法在我的 Java 控制器中接收这个数组?我看到了一些用 Scala 编写的示例,但我找不到 Java 示例。我尝试使用下面的代码,但它一直抛出空指针异常。
@BodyParser.Of(BodyParser.Json.class)
public static Result categoryOrderUpdate() {
JsonNode jsonRequest = request().body().asJson().findPath("categoryOrder");
我的路线文件:
# ImageUploader
GET /imageUpload controllers.ImageUploader.mainPage()
POST /imageUpload controllers.ImageUploader.imageUploader()
POST /imagePath controllers.ImageUploader.pathCalculator()
GET /categoryAdd controllers.ImageUploader.categoryAdder()
POST /categoryOrderUpdate controllers.ImageUploader.categoryOrderUpdate()