CORS preflight请求返回 "403 Forbidden";随后的请求只能在Chrome浏览器中发送
在使用之后这个问题,我现在正在尝试 fineuploader . 阅读CORS后,我在IIS6服务器上实现了各种标题. 似乎发生的事情是我的脚本发射了第一个(preflight)授权请求,但失败了,但是Chrome允许第二个(standard)请求无论如何都会发送 - Firefox不会.我认为这实际上是代表Chrome的错误,但至少它使我能够确定我的脚本可能是可能工作正常. 这是Chrome和ff: 中看到的第一个(前飞行)请求 OPTIONS /frog/LOTS/upload/php.php HTTP/1.1 Host: staff.curriculum.local User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0
0 2023-05-30
编程技术问答社区
如何处理来自代理的额外HTTP头?
我们的环境需要使用出站代理进行异地服务.通常这不是问题.在Twilio的这种情况下,额外的标头返回会破坏客户端. 传出标题: POST /2010-04-01/Accounts/FOO/SMS/Messages.json HTTP/1.1 Authorization: Basic FOO== User-Agent: twilio-php/3.10.0 Host: api.twilio.com Accept: */* Accept-Charset: utf-8 Content-Type: application/x-www-form-urlencoded Content-Length: 108 响应标题: HTTP/1.0 200 Connection established HTTP/1.1 201 Created Server: nginx Date: Thu, 06 Jun 2013 14:39:24 GMT Content-Type: application
0 2023-05-30
编程技术问答社区
如何测试对 "如果|修改|自 "HTTP头的支持?
使用php我如何准确测试远程网站支持" if-sotified-since" http标头. 根据我所阅读的内容,如果您从标题请求中指定的日期以来已修改了您获得的远程文件,则应返回200个确定状态.如果尚未修改,则应返回未修改的304. 因此,我的问题是,如果服务器不支持"如果修改",但仍然返回200个好的? 那里有一些工具检查您的网站是否支持" IF-MODIFIED-SINCE",所以我想我问它们如何工作. 编辑: 我已经使用卷发进行了一些测试,发送以下; curl_setopt($ch, CURLOPT_HTTPHEADER, array("If-Modified-Since: ".gmdate('D, d M Y H:i:s \G\M\T',time()+60*60*60*60))); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, tr
0 2023-05-30
编程技术问答社区
在PHP中为头像添加访问控制-允许-起源信息
我正在尝试在WebGL应用程序上解决CORS限制.我有一个网络服务可以解决URL并返回图像.由于此Web服务不启用CORS,因此我无法将返回的图像用作纹理. 我打算: 写一个PHP脚本来处理图像请求 图像请求将通过查询字符串作为URL发送 参数 PHP脚本将: 使用查询字符串URL 调用Web服务 获取图像响应(Web服务返回内容类型:图像响应) 在 响应 将响应发送到浏览器 我尝试使用各种技术来实施此功能,包括卷曲,httpresponse,plin var_dump等. 所以我有2个问题: 方法足够好吗? 考虑该方法已经足够好: 我在卷发中取得了最大的进步.我可以使用: 获取图像标题和数据 $ch = curl_init(); $url = $_GET["url"]; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); cur
0 2023-05-30
编程技术问答社区
PHP和自定义HTTP头,不好的做法?
我对返回JSON数据的PHP应用程序进行了自定义API的自定义实施一个(非常小的)JSON对象作为字符串.这效果很好,因为我可以发送响应并轻松地检索客户端而不会弄乱发送的实际数据. 问题是,我可能没有意识到使用这种方法有任何缺点吗?应用程序设置自定义HTTP标头似乎并不常见,所以我想知道这是不良的做法还是不良的"品味". 解决方案 这是一个有趣的问题.应该没有任何理由会出现问题,但是您应该考虑一些事情: 标题需要您的应用程序唯一.不仅是现在,而且永远.您应该确保您的前缀,例如X-MyApplication-Foo: Bar.不这样做可能会在以后引起冲突. 防火墙是有时(很少)过滤未知的HTTP标头有点狂热.这应该不是问题,但要牢记. 较旧的浏览器对标头尺寸的限制比现代浏览器的限制较小,因此您需要进行尽可能多的测试. 有理由无法使用标准HTTP错误代码?我了解您可能想提供堆栈跟踪或其他有用的调试信息,但是在错误的情况下,您是否只是返回包含错误信息的JS
0 2023-05-30
编程技术问答社区
我想在发送304响应的同时发送什么头文件?
当我发送304回复时.浏览器将如何解释我与304一起发送的其他标题? ,例如 header("HTTP/1.1 304 Not Modified"); header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"); 这将确保浏览器不会发送其他条件获取请求(也没有任何请求),直到$偏移时间"用完"? 另外,其他标题呢? 我应该将这样的标题与304一起发送: header('Content-Type: text/html'); 我必须发送: header("Last-Modified:" . $modified); header('Etag: ' . $etag); 要确保浏览器下次$ offset"用完"时发送有条件的获取请求,或者只是保存旧的最后一个修改和etag值? 发送304响应标头时我还应该知道其他事情吗? 解决方案 this 博客文章
0 2023-05-30
编程技术问答社区
如何在PHP中设置自定义标头
java开发人员向我发送了标题中的数据.我这样接受 $_SESSION["HTTP_COUNTRYNAME"]; 如何与标头进行回应?它尝试了header("countryname: USA");,但是php function headers_list不显示它. 解决方案 header('countryname: USA'); print_r(headers_list()); Array ( [0] => X-Powered-By: PHP/5.3.0 [1] => countryname: USA ) ...对我有用. 您确定之前没有输出任何内容吗?开始打印文本后,您无法设置标头.使用headers_sent()查看标头是否已经发送(也就是说,如果您已经输出了某些内容). 其他解决方案 在服务器文件中添加 header("Access-Control-Allow-Headers: custom_header_name"); 在请求中,AJAX添加
0 2023-05-30
编程技术问答社区
header("Location: ...")之后的代码是否执行?
$_SESSION["some_value"] = 4; header("Location: another-file.php"); $_SESSION["some_value"] = 5; $_SESSION["some_value"]的值是多少? 解决方案 重定向后您应该始终死()或exit()(或按Mark B指出,使用ignore_user_abort()),因为您否则不能肯定地知道会发生什么. 尽管某些代码将在标题位置重定向后执行,但重要的是要注意,并非所有代码都必须被执行. 按照您的示例,是的,Some_value将等于5.但是在某个时候,脚本将过早终止. 举以下示例: session_start(); $_SESSION["some_value"] = 'original value'; header("Location: /index.php/test2"); $start_time = microtime(true); for($
0 2023-05-30
编程技术问答社区
什么是Pragma头?缓存页面...和IE
因此,我正在发送PHP中的标题以缓存我的页面(这也集成到我们的" cdn"(竞争/akamai)中).我总是使用这个巴格马:缓存标头,我已经看到各种示例也使用了它.但是,我只是检查了提琴手以测试我们开发的此.NET应用程序的流量,它说: Legacy Pragma Header is present: cache !! Warning IE supports only an EXACT match of "Pragma: no-cache". IE will ignore the Pragma header if any other values are present. ... 我想可以.其余的响应似乎很好,而且我的规格.这是我的代码: function headers_for_page_cache($cache_length=600){ $cache_expire_date = gmdate("D, d M Y H:i:s", time() + $cache_
0 2023-05-30
编程技术问答社区
$.Post不包含任何回应
我有来自处理数据的另一台服务器的.php文件.此数据被列出.因此,每当我使用$.post与正确的参数调用此页面时,其响应无关.我检查了我的代码,也许标题是负责它的代码.我真正想要的是返回我的表数据,以便可以将其填充到另一个页面.我的标题是这样的,header("Content-type: application/json");.我想念什么? $.post('http://333.333.33.33/reporting/table.php?loc_id='+locid+'&loc_type='+loctype+'',{loc_id:locid, loc_type: loctype},function(data){ $('table#default_table').hide(); $('div#generated_table').html(data); }); 这就是我称我的$ .post的方式. 解决方案 您我的朋友已经成为了同一起源政策的另一个受害者 -
0 2023-05-29
编程技术问答社区
PHP将文件手柄传给用户,使文件下载并保存到他们的机器上。
我正在从另一台服务器下载文件.我希望将此文件推向我的用户,而不是将其保存到我的服务器上. 换句话说,将它们传递给文件句柄,这样它就可以通过我的服务器并将其保存到他们的机器中.我怎样才能做到这一点?我到目前为止有这个: $handle = fopen($_GET['fileURL'], 'r'); $filename = stream_get_contents($handle); 如何将其推向用户,也许使用标头? 感谢您的任何帮助和指导. 编辑 我有标题: header("Pragma: public"); // required header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Type: $ctype");
0 2023-05-29
编程技术问答社区
如何做一个cURL请求,产生与Firefox相同的响应头信息
当我使用Firefox浏览页面并单击下载链接时,当我检查网络检查员中的请求时,显示以下标题: Connection: keep-alive Content-Disposition: attachment; filename="example_file.mp3" Content-Length: 35181829 Content-Transfer-Encoding: binary Content-Type: audio/mpeg Date: Fri, 19 Aug 2016 18:19:02 GMT Keep-Alive: timeout=60 Server: nginx X-Powered-By: PHP/5.4.45 但是,当我使用卷曲访问相同地址时,我得到了: Connection: keep-alive Content-Length: 1918 Content-Type: text/html; charset=UTF-8 Date: Fri, 19 Aug 2016
0 2023-05-29
编程技术问答社区
如何用PHP或其他语言启动/强制下载存放在外部的文件?
如果您有外部驻留的图像或其他文件,则如何迫使浏览器在用户单击时下载链接? 使用"内容分解:附件";标题会这样做,但它在不在本地阅读和导入文件的情况下不适用于外部居住的文件. 解决方案 您必须首先将资源加载到服务器上.您可能还想进行一些缓存: 其他解决方案 这是不可能的.您不能指示客户如何处理与当前请求的资源不同的资源. 您只能使用代理来获取外部外部文件并将其传递给客户端. 其他解决方案 如果您不控制HTTP标头,我认为不可能强制下载文件. Content-disposition: attachment是我知道这一点的唯一方法. 尽管这可能无法正常工作,但我唯一的猜测是尝
0 2023-05-29
编程技术问答社区
为什么我的网站上所有的html表格都禁用了Internet Explorer的自动完成功能?
当Internet Explorers AutoComplete打开以获取表单时,当用户第二次开始将内容开始输入内容时,应缓存HTML表单中每个字段的条目并显示为提示. 在我的网站上,对于该网站上存在的任何表格从未显示自动完成功能.但是其他网站保留并交付了没有问题的内容. 我的网站使用PHP作为脚本语言,所有内容均通过SSL传递. 解决方案 我已经确定问题与启动_session()命令发出并运行SSL时的缓存头PHP有关. 我已经能够在Microsoft的IE安全团队中掌握一个人,他们已经确认这就是IE应该工作的方式.这是电子邮件的直接报价. "这被认为是自动完成系统的功能.编写了重要的代码以使其行为." session_start();发行默认的HTTP标头PHP发送的默认HTTP标头是无编回标头.这是Microsoft代表性的另一句话. 如果一个安全的页面说"不要缓存我",这表明数据很敏感,因此自动完成数据本身可能很敏感.诚然,这是一个简单
0 2023-05-29
编程技术问答社区
将JSON数据从安卓系统POST到PHP的正确方法
我使用以下方法看到了许多教程和问题,将JSON对象发送到Android的PHP.例如,所有这些教程和答案都使用 http标头将数据(正文)发送给PHP. .... // Post the data: httppost.setHeader("json",json.toString()); .... 作为程序员,我们都知道标题并不是要携带数据(身体).标头只能携带元数据. 那么,是否有一种正确的方法将JSON数据从Android发送到PHP,而该数据不涉及在标题中设置数据? 解决方案 如果您使用没有射线的nativ lib,这里有httpclient的假人: httpClient = createHttpClient(); //You wanna use POST method. mPost = new HttpPost(_urlStr); //Head mPost.addHeader(new BasicHeader("Content-Type", "app
0 2023-05-29
编程技术问答社区
在使用FPDF的时候,出现了奇怪的字符?
使用FPDF库生成PDF文件时,我正在获得此输出. %pdf-1.3 3 0 obj endobj 4 0 obj 流 X.U -n. &&r.l.tʙ t. .b.)װ endobj 2 0 obj >/xObject > >> endobj 6 0 obj > endobj 7 0 obj > Endobj Xref 0 8 0000000000 65535 F 0000000354 00000 n 0000000542 00000 n 0000000009 00000 n 00000087 00000 n 0000000441 00000 n 0000000646 00000 n 0000000721 00000 n拖车> startxref 770 %% eof 我的代码: header("Content-Type: application/pdf"); $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('
0 2023-05-29
编程技术问答社区
在这种特定情况下,我如何使用POST而不是GET?
我有一个称为insert_comment.php的表单,它包含此功能: function died($error) { // if something is incorect, send to given url with error msg header("Location: http://mydomain.com/post/error.php?error=" . urlencode($error)); die(); } 进一步的代码,将$ error_message发送到函数die,然后函数将用户重定向到mydomain.com/post/error.php,我从url获取错误消息: $error = $_GET["error"]; echo 'some text '. $error .' sometext'; 有什么办法可以使用帖子重定向执行完全相同的事情?我不喜欢在URL中显示整个错误消息,看起来很丑. 解决方案 虽然有可能使用帖子进行复杂,
0 2023-05-29
编程技术问答社区
PHP get_headers不工作?
我想获取网站的标题,但get_headers nothing nother 这是我的代码 有关您的信息,我的网络托管提供商是网络解决方案 我的代码或网络托管提供商中的问题是吗? 以及获得一个网站标题的解决方案是什么? 解决方案 如果禁用了get_headers,则也可以使用卷曲. $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_HEADER => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_NOBODY => true)); $header = explode("\n", curl_exec($curl)); cur
0 2023-05-29
编程技术问答社区
类型为 "application/json "时,无法发送帖子变量
我发现,如果我尝试了php Post Curl,则将其发送正常.一旦我添加了内容类型的httpheader:application/json postvars就不会再碰到了.我已经尝试了后视为JSON字符串和查询字符串. 显示一些代码: $ch = curl_init(); $post = json_encode(array('p1' => 'blahblahblah', 'p2' => json_encode(array(4,5,6)))); $arr = array(); array_push($arr, 'Content-Type: application/json; charset=utf-8'); curl_setopt($ch, CURLOPT_HTTPHEADER, $arr); curl_setopt($ch, CURLOPT_URL, 'https://example.com/file.php'); curl_setopt($ch, CURLOPT_
0 2023-05-29
编程技术问答社区
php: 获取ip地址
我想获得访问者的IP地址. 你能告诉我我应该使用的$_SERVER[]什么元素? $_SERVER['HTTP_CLIENT_IP']; $_SERVER['HTTP_X_FORWARDED_FOR']; or $_SERVER['REMOTE_ADDR']; 更新: 如果您的客户端通过代理服务器连接到Internet,则PHP中的$ _server ['remote_addr']只会返回代理服务器的IP地址而不是客户端机器的IP地址.确定PHP中客户端机器的确切IP地址,它们是HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR. 解决方案 $_SERVER['REMOTE_ADDR']; 根据 这是连接到服务器的IP(报告 您的服务器). 其他值由客户端设置. HTTP_X_FORWARDED_FOR是一个非标准标头(因此X-Prefix),由某些代理服务器设置.这是大型代理服务器供应商的尝试,以帮助ISP识别滥用IP地址.它
0 2023-05-29
编程技术问答社区