Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Http 使用CORS从dart应用程序发布到laravel 4 api时出错_Http_Laravel_Laravel 4_Dart_Cors - Fatal编程技术网

Http 使用CORS从dart应用程序发布到laravel 4 api时出错

Http 使用CORS从dart应用程序发布到laravel 4 api时出错,http,laravel,laravel-4,dart,cors,Http,Laravel,Laravel 4,Dart,Cors,我有一个使用Laravel4开发的RESTAPI。客户端使用Dart语言编写 当我的Dart应用程序执行GET-it操作时,一切正常,但当它执行post操作时,我会出现以下错误: XMLHttpRequest cannot load http://localhost:8000/api/v1/users. Origin http://127.0.0.1:3030 is not allowed by Access-Control-Allow-Origin. 我的Dart函数发出请求: 无效提交表单

我有一个使用Laravel4开发的RESTAPI。客户端使用Dart语言编写

当我的Dart应用程序执行GET-it操作时,一切正常,但当它执行post操作时,我会出现以下错误:

XMLHttpRequest cannot load http://localhost:8000/api/v1/users. Origin http://127.0.0.1:3030 is not allowed by Access-Control-Allow-Origin.
我的Dart函数发出请求:

无效提交表单e{ e、 preventDefault;//不执行默认提交。 请求=新的HttpRequest; request.onReadyStateChange.listendata; //获取基本身份验证凭据 var auth_string='admin:admin';//用于创建新用户帐户的默认管理员登录 var auth_base64=window.btoaauth_字符串; var授权='Basic'+auth_base64; //将数据发布到服务器。 var url='1〕http://localhost:8000/api/v1/users'; 请求。打开“POST”,url; request.withCredentials=true; setRequestHeader'Authorization',Authorization; setRequestHeader'Content-Type','application/json'; 打印筛选的注册数据; request.sendsiftedregistrationAsJsonData; } My Laravel 4在filters.php中定义的过滤器之前和之后:

App::beforefunction$请求 { 如果$\u服务器['REQUEST\u METHOD']='OPTIONS'{ $statusCode=204; $headers=[ '访问控制允许来源'=>'http://localhost:3030', '访问控制允许方法'=>'获取、发布、放置、删除、选项', '访问控制允许标头'=>'来源、内容类型、接受、授权、X请求-带', “访问控制允许凭据”=>“true”, “访问控制最大年龄”=>“86400” ]; 返回响应::makenull,$statusCode,$headers; }}; App::afterfunction$request$response { $response->headers->set'Access-Control-Allow-Origin','http://localhost:3030'; $response->headers->set'Access-Control-Allow-Methods'、'GET、POST、PUT、DELETE、OPTIONS'; $response->headers->set'Access-Control-Allow-headers'、'Origin、Content-Type、Accept、Authorization、X-request-With'; $response->headers->set'Access-Control-Allow-Credentials'、'true'; $response->headers->set'Access-Control-Max-Age','86400'; 返回$response; }; 这是我使用Chrome开发工具得到的标题:

    Request URL:http://localhost:8000/api/v1/users
Request Method:OPTIONS
Status Code:204 No Content
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, authorization, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:8000
Origin:http://127.0.0.1:3030
     Referer:http://127.0.0.1:3030/Users/salarrahmanian/Dropbox/Projects/phpstorm/sifted/app/dart/web/out/sifted.html
    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like    Gecko) Chrome/29.0.1530.0 (Dart) Safari/537.36
    Response Headersview source
    Access-Control-Allow-Credentials:true
    Access-Control-Allow-Headers:Origin, Content-Type, Accept, Authorization, X-Requested-With
    Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
    Access-Control-Allow-Origin:http://localhost:3030
    Access-Control-Max-Age:86400
    Cache-Control:no-cache
    Connection:close
    Content-Type:text/html; charset=UTF-8
    Date:Wed, 10 Jul 2013 18:38:42 GMT
    Host:localhost:8000
    X-Powered-By:PHP/5.4.14
    Your help and input on this really appreciated. 
非常感谢。

您允许原产地http://localhost:3030,但随后要求http://127.0.0.1:3030.

更改:

$response->headers->set('Access-Control-Allow-Origin', 'http://localhost:3030');


注意:不幸的是,在使用授权时,您无法将Allow Origin设置为“*”——仅供参考,以防您也尝试过。我认为没有设置标题,您是否使用Firebug或chrome调试工具检查了标题?我不确定,但它是否正确处理了地址差异?您通过ip在浏览器中打开,标题中是主机名?可能会有所不同…添加标题我回到原始帖子尝试了您的建议,但我仍然遇到相同的问题:-
$response->headers->set('Access-Control-Allow-Origin', 'http://127.0.0.1:3030');