我试图在Vue中对一个PHP脚本进行AJAX调用,但它似乎并没有起作用。
Vue的:
methods: {
onSubmit () {
if (this.valid) {
this.$http.post('http://remindwordserver.loc/register.php', {test: 'test'}).then(response => {
console.log(response.body)
}, response => {})
}
}
},
PHP:
`<?php
print_r($_POST);`
$_POST
为空
我做错了什么?
答案 0 :(得分:0)
我对PHP不太熟悉,但我会试一试。
当请求的HTML内容类型为$_POST
或application/x-www-form-urlencoded
时,multipart/form-data
变量仅包含来自请求的数据。默认情况下,vue-resource将请求的Content-Type设置为application/json
。
如果要在PHP脚本中访问JSON数据,则必须从JSON解码请求数据。请参阅Receive JSON POST with PHP。
答案 1 :(得分:0)
file_get_contents('php://input')
代替$_POST
此外,您还必须配置appche服务器以响应外部请求,并创建.htaccess文件并添加以下内容:
Header always set Access-Control-Allow-Origin "http://localhost:8080"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content- Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ phpFile.php [QSA,L]