标签: jsonp

使用jQuery,从跨域url访问json,其中json可能形成不佳

我正在使用jQuery的ajax函数来访问跨域url.该网址将返回json.我正处于发现阶段,但我想,因为json值包含几个'"'字符串,json eval会抛出错误并停止执行我的客户端脚本.我得到的错误是"未终止的字符串文字".我知道如果我将返回的json硬编码放在本地div中并删除'"' 字符串(和几个隐藏的特殊字符),我可以成功地获得json到eval.无论是通过解决方法还是通过修改我的代码,我可以做些什么来从URL获取json并将其存储在我的客户端javascript中作为有效的json对象?

我目前的代码.没有定义的函数(success,complete,error,dataFilter)执行:

$(function() {
  $.ajax({
  url: "http://www.codemash.org/rest/sessions.json?format=jsonp&callback=?", 
  dataType: "jsonp",
  success: successFunc,
  complete: completeFunc,
  error: errorFunc,
  dataFilter: dataFilterFunc
});

});

function successFunc() { console.log('successFunc(). enter.'); }
function completeFunc() { console.log('complete(). enter.'); }
function errorFunc() { console.log('errorFunc(). enter.'); }
function dataFilterFunc(data, type) { 
  data.replace(/\W/g, ' ');
  return data; 
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery json jsonp

5
推荐指数
1
解决办法
3407
查看次数

通过SSL/HTTPS使用jsonp和.NET Web Service的跨域AJAX

我使用下面的示例使用.net Web服务和jquery进行跨域ajax调用. http://bloggingabout.net/blogs/adelkhalil/archive/2009/08/14/cross-domain-jsonp-with-jquery-call-step-by-step-guide.aspx

它工作正常,直到我尝试将我的端点更改为https.我没有得到任何错误,只是没有回应.我的第一个问题是,是否可以使用jsonp?如果是这样,我会很感激如何解决/解决问题的一些指导.

谢谢!

.net jquery jsonp web-services

5
推荐指数
1
解决办法
1605
查看次数

JSON和JSONP有什么区别?

可能重复:
请解释JSONP

例如,在jQuery文档中,我发现了JSON和JSONP.有什么区别?我怎么知道哪个是哪个?哪一个应该用于什么?

那么PHP函数会json_encode产生什么?

php jquery json jsonp

5
推荐指数
1
解决办法
3772
查看次数

Jquery JSONP请求获得200个数据响应,但标记错误

有一个简单的自动完成框(jquery ui),它从Web服务获取源代码.代码如下所示:

var autocompleteOptions = {
    source = getDataFromService,
    minLength: 3
};

var getDataFromService = function(request, response) {
    var ajaxOptions = {
        url: "http://myservice:1234/somedata/",
        dataType: "jsonp",
        data: "someVariable = " + request.term,
        success: function(data) { alert("data"); },
        error: function(xhr, description, error) { alert("failed"); }
    };

    $.ajax(ajaxOptions);
}

$(someSelector).autocomplete(autocompleteOptions);
Run Code Online (Sandbox Code Playgroud)

看着fiddler,甚至在Firefox firebug面板中,我可以看到JSON被正确返回,服务器响应是200.我甚至检查了创建的jsonp脚本片段,它也包含正确的JSON.然而,它始终击中错误功能而不是成功的错误功能.

我也尝试过使用complete并手动从xhr获取数据,但是responseText和responseXml都是未定义的.包含的错误表示解析错误,但它似乎在语法上都是正确的json,因为firebug面板和fiddler都显示正常.

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: 28 Jun 2011 11:17:04 GMT
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: application/json; charset=utf-8
Content-Length: 29
Connection: Close

[{"id":"1", "somevar":"hello"}]
Run Code Online (Sandbox Code Playgroud)

javascript jquery jsonp

5
推荐指数
1
解决办法
2976
查看次数

使用JSONP时"无效标签"?

我的JSONP请求有问题..数据不会显示,Firebug显示"无效标签"错误.

在此输入图像描述

我的JavaScript:

$.ajax({
    url: link,
    dataType: "jsonp",
    beforeSend: function(xhr) {
        var base64 = btoa(username + ":" + password);
        xhr.setRequestHeader("Authorization", "Basic" + base64);
        xhr.overrideMimeType("application/json");
    },
    jsonpCallback: "getResources"
})

function getResources(data) {
    alert(data);
    alert(JSON.parse(data));
    $.each(data.groupStatus, function(i, item) {
        $("body").append("<p>ID: " + item.id + "</p>");
    });
}
Run Code Online (Sandbox Code Playgroud)

我的JSON:

{
    "groupStatus": [
        {
            "id": "Application Layer Configuration-ApplicationLayer",
            "time": 1332755316976,
            "level": 0,
            "warningIds": [],
            "errorIds": []
        },
        {
            "id": "Application Layer-ApplicationLayer:nscalealinst2",
            "time": 1333431531046,
            "level": 0,
            "warningIds": [],
            "errorIds": []
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我的HTML:

<html>
<head> …
Run Code Online (Sandbox Code Playgroud)

javascript ajax json jsonp syntax-error

5
推荐指数
1
解决办法
3843
查看次数

JSONP和ASMX Web服务

我正在试图弄清楚如何使用jQuery对ASMX Web服务进行JSONP调用.这些只是我已经阅读过的一些页面,但没有找到任何解决方案:

如何使用jquery"jsonp"调用外部Web服务?

使用jQuery将跨域JSON发布到ASP.NET

使用JQuery访问ASP.net webservice时出错 - JSONP

使用jQuery.ajax和JSONP设置标头?

http://www.codeproject.com/Articles/43038/Accessing-Remote-ASP-NET-Web-Services-Using-JSONP

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

等等...

这是我的示例.NET Web方法:

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public void GetEmployee(string employeeId, string callback)
{
    // Get the employee object from the Factory.
    Employee requestedEmployee = EmployeeFactory.GetEmployee(employeeId);

    if(requestedEmployee != null)
    {
        // Return the padded JSON to the caller.
        CrossDomainUtility.SendJsonP(callback, requestedEmployee.ToJson());
    }
}
Run Code Online (Sandbox Code Playgroud)

这是SendJsonP():

public static void SendJsonP(string callback, string json)
{
    // Clear any response that has already been prepared.
    HttpContext.Current.Response.Clear();

    // Set the content type …
Run Code Online (Sandbox Code Playgroud)

asp.net jquery jsonp asmx

5
推荐指数
1
解决办法
9292
查看次数

将jsonp转换为json

这是我的代码

$.ajax({
    type: "GET",
    url: "http://example.com?keyword=r&callback=jsonp",
    success: function (data) {
        alert(data);
    },
    dataType: "jsonp",
    error: function (xhr, errorType, exception) {
        var errorMessage = exception || xhr.statusText;
        alert("Excep:: " + exception + "Status:: " + xhr.statusText);
    }
});
Run Code Online (Sandbox Code Playgroud)

好吧所以上面的代码工作正常,我得到一个数据为jsonp.Now我无法弄清楚如何将jsonp转换为json.

javascript jquery json jsonp

5
推荐指数
1
解决办法
2万
查看次数

如何使用knockout.js动态地将数据绑定到下拉列表?

我是knockout.js的新手.我无法使用敲除js将数据从api绑定到下拉列表.

来自api和dropdown的我的Json数据是:

[{
ContactID: 0,
FirstName: "Aaa",
LastName: "bbb",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
},
{
ContactID: 0,
FirstName: "Ccc",
LastName: "ddd",
MobileNumber: null,
StartDate: "0001-01-01T00:00:00",
EndDate: "0001-01-01T00:00:00"
}
]
<select id="selectmenu1" name="" data-theme="c" data-bind="optionsCaption: 'Choose...'">        </select> 
Run Code Online (Sandbox Code Playgroud)

我只是将firstname,lastname,contactID绑定到下拉列表,并将firstname和lastname显示为text,contactID是该项的value字段.有人可以就此提出一些建议吗?

jquery jsonp asp.net-mvc-4 knockout.js single-page-application

5
推荐指数
1
解决办法
2万
查看次数

使用jquery-ajax执行curl命令

我使用以下输入执行curl命令到mongoDB.

curl --data 'cmd={"geoNear" : "items", "near":[6.8590845,79.9800719]}' 'http://72.123.xxx.xxx:27080/weather/_cmd'
Run Code Online (Sandbox Code Playgroud)

我想用jsonp或json执行它并获得响应.我在jsonp请求下面尝试过.

var url =  "http://72.123.xxx.xxx:27080/weather/_cmd";
$.getJSON(url + "?callback=?",
    {
        cmd:{"geoNear" : "items", "near": 6.8590845,79.9800719]}
    },
    function(tweets) { }
);
Run Code Online (Sandbox Code Playgroud)

我从控制台得到了什么.请帮我解决一下这个.谢谢.

jquery json curl jsonp

5
推荐指数
1
解决办法
1万
查看次数

带有JSONP的ASP.NET Core MVC

我想启用现有的MVC控制器(来自ASP.NET Core/Kestrel服务器)将消息包装为JSONP,以便可以从浏览器跨域访问它们.我有什么选择?

jsonp asp.net-core-mvc kestrel-http-server asp.net-core

5
推荐指数
1
解决办法
2323
查看次数