为了账号安全,请及时绑定邮箱和手机立即绑定

在php中加了头还是不管用,前台代码运行在node上,端口8080,apache 3000

post变成options了;chrome中报这样的错

XMLHttpRequest cannot load http://localhost:3000/test.php. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

request头


Accept:*/*

Accept-Encoding:gzip, deflate, sdch, br

Accept-Language:zh-CN,zh;q=0.8

Access-Control-Request-Headers:access-control-allow-origin, content-type

Access-Control-Request-Method:POST

Connection:keep-alive

Host:localhost:3000

Origin:http://localhost:8080

Referer:http://localhost:8080/index



下面是php

 <?php
header('Content-Type:application/json;charset=utf-8');
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:GET,POST');
     $backValue=$_POST['trans_data'];
     echo $backValue."+后台返回";
 ?>

这是ajax

$.support.cors =true;
var my_data="前台变量";
my_data=escape(my_data)+"";//编码,防止汉字乱码
$.ajax({
    url: "http://localhost:3000/test.php",
    type: "POST",
    data:{trans_data:my_data},
    //dataType: "jsonp",
    contentType:"application/json",
    crossDomain:true,
    error: function(e){
        console.log(e)
    },
    success: function(data,status){//如果调用php成功
        alert(unescape(data));//解码,显示汉字
    },
    headers:{
        'Access-Control-Allow-Origin':'http://localhost:8080'
    }
})

求解答啊~~~

正在回答

1 回答

解决了,在apache中配置header,content-type有限制

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Ajax全接触
  • 参与学习       224758    人
  • 解答问题       708    个

本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用

进入课程

在php中加了头还是不管用,前台代码运行在node上,端口8080,apache 3000

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号