通过php访问控制允许Origin服务器端
Access-Control-Allow-Origin server side by php
我对以下主题有问题:访问控制允许原点。
我读过它,我发现使用php可以得到响应,这里是
但我不知道如何将代码适应javascript,我仍然有同样的问题。
我在javascript:中尝试过
var url ='http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter';
req=Ajax("getResponse.php/?" + url)
if (req.status=200)
alert("hi");
在php文件上:
<?php
echo file_get_contents($_GET['url']);
?>
什么也没发生。我尝试了ajax,类似于:
$.ajax({
url: "http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter",
async: false,
dataType: 'html',
success: function (text) {
alert(text);
}
});
但问题总是一样。。。。
我在网上看到很多人有同样的问题,但没有人得到回应。我只找到了两种方法,使用chrome和一个选项,但只是建议开发人员在服务器上添加标题,但我不知道在哪里添加它们。我使用apache tomcat catalina作为本地主机。我有两个服务器,网页(在examplep中)和其余(在tomcat中)
更改
req=Ajax("getResponse.php/?" + url)
至
req=Ajax("getResponse.php/?url=" + url)
记住这是不安全的,我可以把任何东西传递到url参数中,你的php脚本就会使用它。允许人们从你的本地系统读取文件,并让你的php剧本从其他地方下载恶意文件
编辑:
最好的安全方法是使用动作列表,这意味着用户永远看不到url,只能修改动作词。例如
req=Ajax("getResponse.php/?do=getOrders")
然后在php 中
$actions = array();
$actions['getOrders'] = "http://localhost:8080/com.webserver/rest/manage/order?parameter=parameter";
if(array_key_exists($_GET['do'], $actions))
echo file_get_contents($actions[$_GET['do']]);
通常,您想要做的不仅仅是将操作转换为url,还可能需要传递其他参数。在这种情况下,你可以使用一个开关或一堆IF来检查$_GET['do']是否等于某个值,然后进行处理。但要给出每种可能的实现方法的示例需要几个小时,所以你可能想使用谷歌。
请注意:虽然建议使用此方法为脚本增加100倍的安全性,但它是不可调用的,尤其是当您也开始传递用户的参数时。再次使用谷歌。
- 如何使用skip参数使用angular ui引导进行服务器端分页
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 将表单数据提交到服务器端
- 使用ajax的服务器端分页&jQuery
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 使用FormData上传AJAX图像;t在服务器端显示图像
- React路由器服务器端渲染和ajax获取数据
- renderReact/Rect Router+Node/Express.js的服务器端/同构渲染中未定义renderP
- Meteor如何运行服务器端python脚本
- CORS-服务器端cookie没有保存在chrome浏览器上
- 加载服务器端渲染的React组件后执行脚本
- 在Javascript中复制C#服务器端验证
- 在服务器端脚本执行后关闭选项卡
- 如何向服务器端提交javascript变量
- 具有服务器端呈现的HTML片段的主干模型
- 通过php访问控制允许Origin服务器端