1

我在使用 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是一个像下面这样的数组。

使用 Jquery UI 插件

当我首先尝试此代码时,我收到一个错误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()
4

0 回答 0