【发布时间】:2015-12-09 22:15:55
【问题描述】:
更新:这个问题已经解决,我的问题是一个错字。我所做的事情的概念是正确的。
当我第一次显示我的页面时,我会检查图像是否存在。打印出来:
if (@file_get_contents($url) != false)
{
// show URL
}
else {
// Show Placeholder Image
}
当我第一次加载我的页面并且用 HTML 编写 php 时,此代码有效。
但在其他情况下,当我执行 jQuery .post 或 .get 调用(基本上是 ajax)时,执行上述文件检查总是失败。我已经打印出 URL,它指向正确的文件(我可以通过取消抑制错误来做到这一点)。现在,url 是一个不同的域,而不是被调用的原始文件,所以不确定它是否是一个跨域问题(它也是一个属于我的网站,所以我可以完全访问这些文件)。
此代码是否由于 ajax 而无法正常工作?跨域?还有什么?
另外,我试过file_exists、getimagesize 和cUrl 也无济于事。
编辑:
当错误没有被抑制时,这是我的消息:
警告:
file_get_contents(http://www.---.---)[function.file-get-contents]:打开流失败:HTTP 请求失败! HTTP/1.1 404 Not Found in --- 第 352 行
【问题讨论】:
-
你的 ajax 脚本和这个脚本在同一个文件夹中吗?
-
我不确定您所说的“这个”是什么意思。我的
index.php代码工作的地方在主文件夹中。我的 ajax 位于名为js/myscript.js的根目录下的文件夹中。 jQuery ajax 调用根目录中的文件(index.php 的兄弟)。 -
跨域问题仅适用于从浏览器发送的请求。 PHP在服务器上运行,所以没有跨域检查。
-
删除
@以便您从失败的请求中获得错误消息。 -
$url的确切值是多少?
标签: php jquery ajax file-exists