骨干与laravel作为api没有返回错误

时间:2014-02-28 22:11:05

标签: json backbone.js laravel

我创建了一个简单的Backbone脚本,它依赖于使用laravel RESTful功能创建的简单api。包含Backbone脚本的html驻留在我的桌面和我的xampp localhost上的服务器api。

在Laravel上:

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return Response
 */
public function show($id)
{
    $task = Task::find($id);

            return $task;
}

on Backbone:

(function(){

 App = {

  Models : {},

  Views : {},

  Collections : {}

 }; 

 App.Models.Task = Backbone.Model.extend({

  defaults : {title : '', active : 0},

  urlRoot : 'http://localhost/api/public/tasks'

 });

  var task = new App.Models.Task({id : 1});

  task.fetch();

  //task.set({title : 'new tite', active : 1});

  //task.save();

})();

服务器端接缝正常,导致测试返回正确的json对象,但是当我尝试运行Backbone脚本时,我在开发控制台中收到此错误:

> XMLHttpRequest cannot load http://localhost/api/public/tasks/1. No
> 'Access-Control-Allow-Origin' header is present on the requested
> resource. Origin 'null' is therefore not allowed access

。 可能是什么问题???

1 个答案:

答案 0 :(得分:0)

也许有人需要这个!

感谢TonyArra,我找到了答案:

  • 由于服务器和请求脚本位于2个不同的域上,因此解决方案是:

  • 在服务器上添加它(使用laravel我在restful controller的构造函数中添加了此代码):

            $http_origin = $_SERVER['HTTP_ORIGIN'];
    
           //if you trust origin set header else verify source
    
           //if ($http_origin == "http://www.domain1.com")
    
           header("Access-Control-Allow-Origin: $http_origin");