【问题标题】:how to load external file through php如何通过php加载外部文件
【发布时间】:2015-01-15 21:16:28
【问题描述】:

我正在尝试通过 curl 请求加载 JS 文件并将其加载到我的应用程序中。

我有类似的东西

加载JS.php

 $c = curl_init('http://partnerSite.com/test.js');
        curl_setopt($c, CURLOPT_VERBOSE, 1);
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

       $jsFile = curl_exec($c);
        //I have tried this, give me error
        echo $jsFile;  

         //I have tried this and give me error too.
        header('Content-Type: application/json');
        echo json_encode($jsFile); 

        curl_close($c);

在我的 JS 中

  var url = '/loadoutSideJS'; redirect to loadJS.php
    $http({
            url:url,
            method:'GET',
         dataType:'json'
    }).success(function(data) {
        $.getScript(data);
   })

我在控制台中收到 414 request-url too large 错误

由于某种原因,响应被视为纯文本而不是 js 文件。无论如何我可以将响应视为 JS 来加载外部 JS 文件吗?非常感谢!

更新

加载JS.php

 $c = curl_init('http://partnerSite.com/test.js');
        curl_setopt($c, CURLOPT_VERBOSE, 1);
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

       $jsFile = curl_exec($c);       

         //I have tried this and give me error too.
        header('Content-Type: application/javascript');
        echo $jsFile; 

        curl_close($c);

在我的 JS 中

  var url = '/loadoutSideJS'; redirect to loadJS.php
    $http({
            url:url,
            method:'GET'            
    }).success(function(data) {
        $.getScript(data);
   })

【问题讨论】:

  • 为什么要在第二个请求中获取第一个请求的有效负载?如果它是完整的响应正文,我也不明白为什么需要对 URL 进行 JSON 编码;这将使 url 不是 url,而是以 " 开头的东西......
  • @dan:可能是尝试通过 OP 的服务器代理 JS 脚本以绕过同源限制。但是 json_encoding 输出只是多余的,因为您可以首先将其作为 text/javascript 发送出去。
  • @MarcB:但脚本不需要遵循 SOP,所以不可能。回声后的标题和未注释的 JS 注释告诉我有很多原因这不起作用,所以谁知道...
  • 请更新答案,我希望我解决了你们提到的问题。但它仍然不适合我。 (同样的错误)

标签: javascript php angularjs curl


【解决方案1】:

为什么不

<?php

header('Content-Type: application/javascript');
echo file_get_contents('http://partnerSite.com/test.js');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-11
    • 2014-10-21
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多