我有以下功能很好,我使用JSONP来克服跨域,写了一个http模块来改变内容类型,并没有在url中追加一个回调名称.
function AddSecurityCode(securityCode, token) {
var res=0;
$.ajax({ url: "http://localhost:4000/External.asmx/AddSecurityCode",
data: { securityCode: JSON.stringify(securityCode),
token: JSON.stringify(token)
},
dataType: "jsonp",
success: function(json) {
alert(json); //Alerts the result correctly
res = json;
},
error: function() {
alert("Hit error fn!");
}
});
return res; //this is return before the success function? not sure.
Run Code Online (Sandbox Code Playgroud)
}
res变量是alwayes未定义.而且我不能在jsonp中使用async = false.那么如何才能将结果返回到函数外部?我肯定需要为次要的电话做这件事.
请指教,谢谢.问题是我无法在此函数之外返回结果值
我只是试着通过js获取我的zootool项目,将它们推送到我博客的页脚中......但没有成功.这是使用的代码(jquery框架)
jQuery(document).ready(function($)
{
//first try
var url = "http://zootool.com/api/users/items/?username=USER_NAME&apikey=API_KEY&jsonpcallback=?"
$.getJSON(url, function(data){ console.log(data); });
//second try
url2 = "http://zootool.com/api/users/items/?";
data = "username=USER_NAME&apikey=API_KEY";
$.ajax(
{
url: url2, dataType: 'jsonp', data: data,
success: function(data){ console.log(data); }
});
}
Run Code Online (Sandbox Code Playgroud)
基于webkit的浏览器告诉我:"资源被解释为脚本但是使用MIME类型application/json进行传输."
firefox运行良好,我得到一个应用程序/ json; utf-8对象,我可以成功解析.你知道可能是什么问题吗?非常感谢!
卢卡
我正在玩Trello API,我正在慢慢掌握它.我被困在一块,我设法在一个speicifc列表中创建一张新卡,但我想解析我从"createCard"调用得到的响应,例如获取新卡的ID.
这是我的Trello创建卡片帖子:
Trello.post("cards", { name: "Card Created from MVC", desc: "This is the description of the card.", idList: "??????????" }).done(onCardCreated());
Run Code Online (Sandbox Code Playgroud)
idList由于安全原因,我省略了真正的价值.
我可以在我的Trello板上立即看到该卡.我通过此调用得到的响应如下所示:
jQuery1510518084118841216_1327764237952({"id":"????","name":"Card Created from MVC","desc":........)
Run Code Online (Sandbox Code Playgroud)
我期待看到JSON返回喜欢这个:
{"id":"????","name":"Card Created from MVC","desc":....}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,JSON就是这个jQuery1510518084118841216_1327764237952东西.
有些人可以告诉我jQuery的用途是什么,以及如何获取其中的JSON数据?
我正在使用GWT,我想发出一个JSONP请求,它在返回时调用我的GWT方法.
但是,我无法弄清楚如何指定在回调时调用的GWT方法.有人可以帮忙吗?这是我的示例代码:
private native void fetchUserData(String accessToken) /*-{
var callback = "com.company.example.FacebookApi::handleUser";
var url = "https://graph.facebook.com/me?access_token="+accessToken+"&callback=" + callback;
// use jsonp to call the graph
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
}-*/;
public void handleUser(Object o) {
Window.alert("Received object with class: " + o.getClass().getName())
}
Run Code Online (Sandbox Code Playgroud)
此代码从此示例移植:Facebook没有SDK.
或者,我刚刚发现有一个GWT JsonpRequestBuilder,我还没有机会使用它,但如果有人可以在不使用任何本机代码的情况下给出一个例子......那就更好了.
谢谢!
最近我一直试图通过ajax和使用jquery向Instagram API发出请求.我似乎有点麻烦.我试图从通过GET请求来的JSON数组中获取可用的信息,并且似乎只能访问数组的一小部分,其他所有内容都是未定义或空白.这是我正在使用的代码:
$.ajax({
type: "GET",
dataType: "jsonp",
cache: false,
url: "https://api.instagram.com/v1/tags/olympics/media/recent?client_id={clientid}",
success: function(response) {
for (var i=0; i<25; i++)
{
$("#photos").html(response.data[i].comments.from.username);
}
}
});
Run Code Online (Sandbox Code Playgroud)
只是使用{clientid}来表示将要去的地方,测试信息应该来自data [i] .comments.from.username但是这不起作用,我画的是空白.我用JSFiddle试图弄清楚我哪里出错但没有成功.
有没有人对如何克服这个障碍有任何想法?我没有任何其他API的问题,我只使用过这个.任何可能有用的代码都会很好!
谢谢!
我有一个WCF服务定义为:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public string HelloWorld()
{
return "Hello World";
}
}
Run Code Online (Sandbox Code Playgroud)
我的Web.Config文件:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true"/>
</webHttpBinding>
</bindings>
<services>
<service name="Service">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="webHttpBindingWithJsonP" contract="Service" behaviorConfiguration="webHttpBehavior"/>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我希望能够在我的WCF服务中访问ASP .Net会话变量,并且我希望WCF服务返回JSONP数据,但是即使使用这个简单的服务,浏览到../Service.svc/HelloWorld我得到了一个400 Bad Request错误.
有人能指出我正确的方向吗?
我正在尝试使用OpenWeatherAPI使用JQuery get请求执行获取JSONP数据.我已经构建了我的查询,如下所示:
function getWeather(callback) {
var weather = 'http://openweathermap.org/data/2.1/find/city?lat=13.3428&lon=-6.2661&cnt=10&jsoncallback=?';
jQuery.getJSON(weather, callback);
}
// get data:
getWeather(function(data){
console.log('weather data received');
});
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
SyntaxError:无效标签
但是,数据正在返回,因为我可以在Firebug中单击它,它给了我预期的结果.我在客户端执行此操作,所以也许我的JSONP请求有一个基本错误.搜索此主题还表明返回的数据可能是JSON格式而不是JSONP,但我不确定其区别.
从asp.net MVC的角度来看,有谁可以帮助我理解JSON,JSONP和CORS之间的差异?
我有一个arduino上传传感器数据到cosm.com.我在我的本地Web服务器上创建了一个简单的网页来查询cosm.com API并打印出值.
问题是如果我没有在另一个标签中登录cosm.com,我会得到这个弹出窗口.

解决方案是将我的公钥传递给cosm.com,但我在这里已经超出了我的想法.
该文档提供了如何在curl中执行此操作的示例,但不是javascript
curl --request GET --header "X-ApiKey: -Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g" https://api.cosm.com/v2/feeds/120687/datastreams/sensor_reading
Run Code Online (Sandbox Code Playgroud)
如何将我的密钥传递到网址?:
function getJson() {
$.ajax({
type:'GET',
url:"https://api.cosm.com/v2/feeds/120687/datastreams/sensor_reading",
//This line isn't working
data:"X-ApiKey: -Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g",
success:function(feed) {
var currentSensorValue = feed.current_value;
$('#rawData').html( currentSensorValue );
},
dataType:'jsonp'
});
}
Run Code Online (Sandbox Code Playgroud)
更新: 必须是可能的,因为hurl.it能够查询api http://www.hurl.it/hurls/75502ac851ebc7e195aa26c62718f58fecc4a341/47ad3b36639001c3a663e716ccdf3840352645f1
更新2: 虽然我从来没有让这个工作,我确实找到了解决方法.Cosm有自己的javascript库,可以满足我的需求.
http://cosm.github.com/cosm-js/ http://jsfiddle.net/spuder/nvxQ2/5/
我是新手IONIC-2,想要连接我的移动应用程序Odoo - open source ecommerce..这个连接涉及一些JSONP请求..我已经完成了同样的jQuery事先...它在phonegap应用程序中正常工作..但虽然我做同样的事情IONIC-2它给了我CORS和JSONP错误..
谁可以帮助我...
我之前的jQuery代码是......
/****** index.js ******/
function json(url, params) {
var deferred = jQuery.Deferred();
uniq_id_counter += 1;
var payload = {
'jsonrpc': '2.0',
'method': 'call',
'params': params,
'id': ("r" + uniq_id_counter)
};
rpc_jsonp(url, payload).then(function (data, textStatus, jqXHR) {
if (data.error) {
deferred.reject(data.error);
}
deferred.resolve(data.result, textStatus, jqXHR);
});
return deferred;
}
function rpc_jsonp(url, payload) {
// extracted from payload …Run Code Online (Sandbox Code Playgroud)