无法加载资源:服务器响应状态为404

时间:2014-03-04 12:42:19

标签: jquery url path liferay

我在jQuery File Upload中使用Liferay Portal作为PHP portlet,当我上传文件时出现此错误:

Failed to load resource: the server responded with a status of 404 (Not Found)   http://localhost:8080/server/php/

我的项目树:

Upload-portlet
    |
    |___docroot
            |
            |__ cors
            |__ css
            |__ img
            |__ js
                |__ main.js (that contains url to server/php/)

            |__ META-INF
            |__ server
            |       |__ php
            |
            |__ WEB-INF
            | 
            |   view.php

我测试了Xampp中的 jQuery文件上传,它运行正常。我只将文件从Xampp复制到我的portlet,我部署它而没有收到任何错误。然后,当我上传文件时,我会在404

上获得错误状态http://localhost:8080/server/php/

我尝试将url更改为绝对路径

$('#fileupload').fileupload({
    url: 'http://localhost:8080/Upload-portlet/server/php/'
});

相对路径

$('#fileupload').fileupload({
    url: '../server/php/'
});

但我仍然获得HTTP状态404。


更新

感谢Martin Gamulin我解决了问题:我将我的网址更改为url: '/Upload-portlet/server/php/index.php',404问题不再发生。

但即使我解决了这个问题,也没有上传文件(我没有收到任何错误)。我在 Chrome JavaScript控制台中看到,当我上传文件时,调用返回200状态(OK)。

enter image description here

但是当我转到保存图像的文件夹F:\LIFERAY\tomcat-7.0.42\webapps\Upload-portlet\server\php\files时,我发现它是空的。在预览中(见下面的截图)我得到PHP代码而不是缩略图。

enter image description here

现在问题是Liferay / Tomcat 没有解释尚未在portlet.xml中声明的PHP 文件。解释 view.php 可能是因为它已在xml中声明。

<portlet-class>com.liferay.util.bridges.php.PHPPortlet</portlet-class>
<init-param>
    <name>view-uri</name>
    <value>/view.php</value>
</init-param>

我试图将所有的PHP代码放在 view.php 中,但它仍然无法正常工作。我验证PHP使用<?php phpinfo(); ?> view.php 上工作,我得到了关于PHP的所有信息。这里的输出:

   的

PHP Version => 5.2.0
System => Windows 7 6.1 amd64
Build Date => 20070628T2777
Configure Command => n/a
Server API => CGI
Virtual Directory Support => disabled
Configuration File (php.ini) Path => WEB-INF/php.ini
PHP API => 20031224
PHP Extension => 20041030
Debug Build => no
Thread Safety => enabled
Registered PHP Streams => php, file, http, https


PHP变量

Variable    Value
_REQUEST["COOKIE_SUPPORT"]   true
_REQUEST["COMPANY_ID"]   10204
_REQUEST["ID"]   6d49557674326c5142786c793578787233502b346b513d3d
_REQUEST["USER_UUID"]    40LHv8GLWffkS2XSYCqE61YcYleKtJSSpCdYnMZF3J0=
_REQUEST["GUEST_LANGUAGE_ID"]    en_US
_REQUEST["LFR_SESSION_STATE_10248"]  expired
_REQUEST["JSESSIONID"]   24CB07F376E4A7BCE991812360AFF4C1
_GET["portlet_namespace"]    _Upload_WAR_Uploadportlet_
_GET["portlet_name"]     Upload

etc..


我现在正在尝试将get_full_url()(在PHP 类UploadHandler 中)更改为另一个URL,可能与Liferay网址混淆。 谢谢你的帮助,抱歉我的英文不好!

0 个答案:

没有答案