2015-07-13 73 views
0

这里是我的probem的简化版本。在Ajax调用上出现跨域错误,Yii2

我试图做一个简单的ajax调用视图到特定的控制器/动作url和期待json响应。

视图/艺术品/ ajax.js

ajaxRequest = $.ajax({ 
    type: "post", 
    dataType: 'json', 
    url: "/index.php?r=artwork/search", 
    data: { "globalSearch": "somesearchterm" } 
}); 

对应于该请求,在这种情况下,actionSearch一个动作,只是简单地返回回参数的值作为globalSearch响应。

控制器/ ArtworkController.php

​​

但是,我得到一个jQuery的跨域错误。我做错了什么?

Chrome的控制台登录

POST http://localhost/index.php?r=artwork%2Fsearch 500 (Internal Server Error) 
n.ajaxTransport.k.cors.a.crossDomain.send @ jquery.min.js:4 
n.extend.ajax @ jquery.min.js:4handleAjaxLink @ajax.js:19 
n.event.dispatch @ jquery.min.js:3 
n.event.add.r.handle @ jquery.min.js:3 

回答

2

500(内部服务器错误)表示出现了错误的服务器端。

它不是跨域错误。错误在您的PHP代码中。

您忘记添加关闭}如果条件(根据代码在问题中提到的行动actionSearch)。

+0

感谢您的回复,但这只是在我的问题发布期间意外删除。我的代码中已经有'}'。 在这里,我根据你的回复编辑问题。 – user1756095

+0

你的路径在ajax请求中是正确的http:// localhost /? –