'资源被解释为脚本,但使用MIME类型text / html'响应

时间:2014-04-28 12:32:51

标签: javascript php ajax cross-domain

我对PHP(在不同的域上)登录脚本进行了ajax调用,其内容如下:

var request = $.ajax({
        crossDomain: true,
        url: "http://www.domain.com/PHP/fct.login.php",
        type: "POST",
        data: $('#loginForm').serialize(),
        dataType: "jsonp",
        contentType: "application/json; charset=utf-8",
    });

在我的PHP脚本中,我有以下内容:

<?php
header('Content-Type: text/javascript');
echo $_GET['callback'] . '(' . "{'status' : '1'}" . "{'text' : 'ok'}" . "{'userid' : $member['user_id']}" . ')';
?>

但它不起作用。在我的控制台中,我只收到Resource interpreted as Script but transferred with MIME type text/html消息...

编辑:我更新了我的回复“Felix Kling&#39;说,但现在我得到一个解析错误。

我的更新回复如下:

echo $_GET['callback'] . "({status : 1},{text : 'ok'},{userid : ".$member['user_id']."})";

错误如下:

Error: Parse error on line 1:
{status : 1},{text :
-^
Expecting 'STRING', '}'

编辑2 :没关系,它现在有效(使用更新的响应)。当我通过浏览器直接查看parse error脚本(没有ajax调用等)时,我得到了php

1 个答案:

答案 0 :(得分:1)

您生成的JS代码不正确。它看起来像

callbackName({'status': '1'}{'text' : 'ok})

但是你不能把对方文字放在彼此之后。

您必须生成一个文字:

callback({status: 1, text: 'ok'})

或多个参数,以逗号分隔:

callback({status: 1}, {text: 'ok'})

虽然我认为jQuery只希望将一个参数传递给回调。