【问题标题】:php file returning html 302 error codephp 文件返回 html 302 错误代码
【发布时间】:2015-09-05 14:04:14
【问题描述】:

您好,我有以下文件夹结构

/app/start.php

/php/ProcessOrder.PHP

/php/Checkout.php

Checkout.php 是对 paypal 的测试 api 调用,当我将完整的 URL 放入浏览器时效果很好。

我的 Index.html 向 ProcessOrder.php 发布一个帖子,它将数据保存到我的数据库中,然后应该使用 api 将详细信息传递给 paypal。

processorder 和 checkout 都在同一个文件夹中,并且都具有相同的 require 语句

 require ("/../app/start.php");

为什么 process.php 返回 html 302,但结帐运行?我相信这是 require 语句,因为当我将它从文件进程中移除时,除了 paypal 之外,我还让数据库在开始使用 paypal API 之前全部正常工作。

发现它的最后一行

这应该带我到贝宝的网址 https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1PG60856DA4942405

行号是,

header("Location: {$approvalUrl}");

这一行在processorder和checkout.php中是一样的

【问题讨论】:

  • 不是"html 302错误码",是HTTP 302 status code。这不是错误,而是重定向。错误返回状态代码 4xx(客户端错误)和 5xx(服务器错误)。

标签: php


【解决方案1】:

由于您的文件中有一些奇怪的大小写(混合大小写),您的 Web 服务器可能已配置为匹配混合大小写扩展并将客户端重定向到正确的。

最好的做法是仅使用小写扩展名来处理所有文件,并且仅以它们在文件系统上的确切大小写来引用它们。强制自己正确执行此操作的最佳方法是配置您的 Web 服务器,以便在大小写不匹配时简单地生成 404。

这是一种非常MS-DOS'y 的其他方式,因为 DOS 和 Windows 不严格区分大小写,但 HTTP(与世界上大多数其他事物一样;))是。

【讨论】:

  • 抱歉结帐是小写的,就像开始一样。我已将 processorder.php 更改为所有小写字母,但这始终调用正常。一切都小写,但仍然出现错误 302
  • 它的最后一行应该把我带到贝宝的 url sandbox.paypal.com/cgi-bin/… 42405 代码是,header("Location: {$approvalUrl}");
  • 抱歉刚刚得知我现在看到它是一个重定向,为什么一个文件将我重定向到 paypal 而另一个返回一个重定向代码?
猜你喜欢
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多