Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails 控制器返回404错误,即使其返回结果_Grails - Fatal编程技术网

Grails 控制器返回404错误,即使其返回结果

Grails 控制器返回404错误,即使其返回结果,grails,Grails,我的URLMappings中有以下映射 addPurchase:"/addPurchase" { controller = "cart" action = "addPurchase" } 我从我的GSP打了一个AJAX电话 function addPurchase(purchaseJSON, amount) { $.ajax({ url: 'addPurchase',

我的URLMappings中有以下映射

addPurchase:"/addPurchase" {
            controller = "cart"
            action = "addPurchase"
        }
我从我的GSP打了一个AJAX电话

function addPurchase(purchaseJSON, amount) {
            $.ajax({
                url: 'addPurchase',
                data: {
                    purchase: purchaseJSON
//                    quantity: amount
                },
                type : "POST",
                complete:function(data) {
                    updateCart();
                    updateOrderSummary(data);
                }
            });
        }
我的控制器代码是

def addPurchase = {

      def result = cartService.addPurchase(session,params)

      log.debug"Results from addPurchase" + result
      response.status = 200
      return result as JSON

    }

尽管我在控制台中看到了输出,但我的浏览器中还是出现了404错误。为什么会这样?我的grails版本是@1.3.7

您实际上返回的是一个结果,而所需的响应是“text/html”或“text/json”

因此,在控制器中,您应该
呈现
结果,而不是
返回
结果;比如:

def addPurchase = {
    def result = cartService.addPurchase(session,params)
    log.debug"Results from addPurchase" + result
    response.status = 200
    render result as JSON
}

首先是什么?浏览器错误或控制台结果?就是这样。我想我并没有太注意,我认为呈现和返回应该是一样的。上面的解决方案只是返回一个JSON在客户端进行解析。但更好的方法是根据URLMapping将非AJAX重定向到standard/notFound页面。