0

我确定这是一个基本的语法错误,但我正在尝试使用 jQuery mobile ajax(下面的代码)进行休息调用,并且据我所知,ajax 没有触发。

        function triggerCall() {
            alert("function triggered");
            $.ajax({
                type: "GET",
                dataType: "jsonp",
                url: REST Url,
                success: function (data) {
                    alert(data);
                }
            });

任何帮助,将不胜感激

4

3 回答 3

0

我相信如果您使用 JSONP,您需要在 $.ajax 请求中指定回调,然后在您的 REST 文件返回中再次指定。这是我一直在成功使用的示例(我敢肯定,它并不完美)。

$.ajax({
    url: 'www.domain.com/string/to/your/REST/api',
    data: {
        dataToBeSent: variable, 
        dataToBeSent: sessionStorage.getItem('local/session Storage'),
        dataToBeSend: "or a string"
    },
    dataType: 'jsonp',
    jsonp: 'jsoncallback',
    timeout: 5000,
    success: function(data){    
        alert("Huzzah!");
    },
    error: function(){
        alert("Boohisssss");
    }
}); //end ajax call

然后在 url 中,我将这段代码放在文件的底部:

header("Content-type: application/json", true);
echo $_GET['jsoncallback'] . '(' . json_encode($data) . ');';
exit;

其中 data 是 JSON 编码的数组,在 PHP 中使用 json_encode(),然后包装在回调函数中($_GET['jsoncallback'])

就像我说的,它并不完美,但它一直在为我工作。

于 2012-11-02T20:08:49.963 回答
0
  1. 检查浏览器控制台中的错误。例如。在 chrome 菜单>工具>javascript 控制台中。
  2. 还建议向您的 ajax 调用添加错误处理程序:http: //api.jquery.com/error/
  3. 确定将哪种方法 JSONP 或 CORS 用于您的 ajax 调用:那么,JSONP 还是 CORS?.
于 2012-11-03T01:26:44.493 回答
0

如果您实际上是在编写url: REST Url,,那么您必须将其更改为 var 或字符串.. 这将是一个问题

于 2012-04-20T22:51:40.663 回答