js如何跨域异步供给php数据

看代码就能的小例子:php合併js央求
复制代码 代码如下:
//页面保存为js.php
//前台诉求轨范
//诉求1.js,2.js四个公文
header(“Content-Type:application/x-javascript”);
header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . ” GMT”);
header(“Cache-Control: max-age=”.(86400*30));
header(“Expires: ” .gmdate(“D, d M Y H:i:s”,time()+86400*30). ” GMT”);

在nodejs的付出中,有的时候需求后台去调用别样服务器的接口,当时,就必要发送HTTP诉求了

nginx-http-concat模块是由Taobao举行开垦。使用它来做统大器晚成央浼只必要多多少个?问号就能够。

只需求在php文件尾部插手header('Access-Control-Allow-Origin: *');即可

if($_GET[‘f’])
{
 $url = parse_url($_SERVER[‘REQUEST_URI’]);

当今大家来模拟一下粗略地数量诉求
//request.php
<?php 
    echo 10;
 ?>

今天我们通过express来搭建八个连串
(具体流程自行百度呢,教程超级多。。)

安装request模块

cnpm install request --save-dev

然后在routes下的index.js文件下写我们的伸手

var express = require('express');
var router = express.Router();

//引入request模块
var request = require("request");

/* GET home page. */
router.get('/', function(req, res, next) {
    //向我们刚才创建的request.php文件发起请求
    request('http://localhost/node-request/php/request.php', function (error, response, body) {

      if (!error && response.statusCode == 200) {
        console.log(body) // 打印获取到的数据,这里输出10
      }
    }) 

//渲染主页
  res.render('index', { title: 'Express'});
});

module.exports = router;

示例:

 $arr_f =
array_unique(explode(‘,’,preg_replace(“/\.+\//”,”,$_GET[‘f’])));

POST application/json
//requestJson.php
<?php 
    $obj = '{"age":20}';
    echo json_encode($obj);
 ?>

当时候index.js文件下是这么的

var express = require('express');
var router = express.Router();
var request = require("request");
/* GET home page. */

router.get('/', function(req, res, next) {

    request({
        url: "http://localhost/node-request/php/requestJson.php",
        method: "GET",
        json: true,
        headers: {
            "content-type": "application/json",
        }
    }, function(error, response, body) {
        if (!error && response.statusCode == 200) {
            body = JSON.parse(body);
            console.log(body.age);//这里输出的是20
        }
    }); 

  res.render('index', { title: 'Express'});
});

module.exports = router;

参考:http://blog.csdn.net/dreamer2020/article/details/52074516

css:

 foreach($arr_f as $v)
 {
  if(!empty($v))
  {
   include(‘./’.$v.’.js’);
   echo “\n”;
  }
 }
}
?>

对此诉求中传送参数,尽管是get方法的话,直接将参数拼接到url后边就好了,可是对于POST的伸手传递参数的方法本人查了一些素材一时半刻还未找到办法,借使有了然POST形式怎么传递参数的童鞋,希望能相互调换一下同步学习

 

也得以扩大参数来更新本地缓存样式

 

js:

NGINX配置示范:

location /static/css/ {

    concat on;

    concat_max_files 20;

}

location /static/js/ {

    concat on;

    concat_max_files 30;

}

安装:

nginx-http-concat源码包

1.解压

wget

unzip master

cd nginx-http-concat-master/

2.编写翻译安装

./configure –with-http_stub_status_module
–add-module=../nginx-http-concat-master/

make

其一编写翻译不是在nginx-http-concat-master文件里面进行编写翻译,而是在里边的nginx源码目录中。

–add-module后边的目录才是事情发生以前nginx-http-concat解压出来的门径

3.检查nginx是或不是富含了nginx-http-concat模块

4.退换nginx站点配置文件:

location /static/css/ {

    concat on;

    concat_max_files 20;

}

5.HTML修改:

css:

<link rel=”stylesheet”
href=”??style1.css,style2.css,foo/style3.css?v=2345″ />

js:

<script src=”??bar1.js,bar22.css,subdir/bar3.js?v=3245″ />

nginx-http-concat文档:

文章由爱资料原创本文地址:

发表评论

电子邮件地址不会被公开。 必填项已用*标注