我有两个域名,example1.com和example2.com
从example1.com开始,我想在example2.com上调用我的JSON API.知道这是不允许的,它发生在我身上 - 这正是创建JSON P的原因.
问题是,如何修改我的JSON API以使其具备JSONP能力?
基本上,我如何创建回调api?
UPDATE
我的服务器端语言是PHP
我只是对这些术语感到困惑.有人可以提供/解释我的一个例子吗?
我需要使用内容类型'application/json'创建一个jsonp POST请求.我可以像这样向服务器发送POST请求:
jQuery.ajax({
type: 'POST',
url: url,
data: data,
success: success,
error: error,
async: true,
complete: complete,
timeout: TIMEOUT,
scriptCharset: 'UTF-8',
dataType: 'jsonp',
jsonp: '_jsonp',
});
Run Code Online (Sandbox Code Playgroud)
但是一旦我添加该行:contentType: "application/json"它开始将其作为OPTIONS请求而不是POST发送.
如何指定内容类型并仍然以POST方式提交请求?
我正在制作ajax jsonp请求,但失败错误处理不起作用.如果请求是404或500,它将无法处理错误.
我一直在寻找答案,但找不到任何答案.http://code.google.com/p/jquery-jsonp/似乎有一个解决方案,但我找不到任何关于如何使用它的示例.
function authenticate(user, pass) {
$.ajax ({
type: "POST",
url: "url",
dataType: 'jsonp',
async: false,
//json object to sent to the authentication url
data: {"u": userid, "p": pass},
success: function (data) {
//successful authentication here
console.log(data);
},
error: function(XHR, textStatus, errorThrown) {
alert("error: " + textStatus);
alert("error: " + errorThrown);
}
})
}
Run Code Online (Sandbox Code Playgroud) 我正试图从其ASIN获取亚马逊产品的细节.产品API允许使用Itemlookup ASIN,但返回值为XML.
我想从客户端调用Itemlookup,所以想做一个JSONP我找不到的电话.
我在网上发现了一些文章,JSON使用XSLT样式表将XML转换为格式:
(a)https://bitbucket.org/basti/python-amazon-product-api/src/tip/examples/json-results.py
我尝试使用这个python-amazon-product-api和这个例子,但我无法得到JSON回报.
(b)http://www.kokogiak.com/gedankengang/2006/05/consuming-amazons-web-api-directly.html
我试图发送的请求是:
http://xml-us.amznxslt.com/onca/xml?AWSAccessKeyId=[ACCESS KEY]&AssociateTag=[ASSOCIATE TAG]&ContentType=text%2Fjavascript&IdType=ASIN&ItemId=B008IEGS9W&Operation=ItemLookup&ResponseGroup=Images%2CItemAttributes&Service=AWSECommerceService&Style=http%3A%2F%2Fforums.delphiforums.com%2Fdelphidocsz%2Famazon%2Fjson.xsl&Timestamp=2012-09-04T06%3A40%3A11Z&Signature=AGOqXvVSeMp3YyVkT4mGNXVx0cFGG%2Bh%2FdAebevbbF9o%3D
Run Code Online (Sandbox Code Playgroud)
请帮助获取JSON格式Amazon product API.欢迎任何建议.
OP可以运行此样式表(未使用输入文档)来确定其XSLT版本.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="xsl msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head><title>About your XSLT Processor</title></head>
<body>
<ul>
<li>xsl:version=<xsl:value-of select="system-property('xsl:version')" /></li>
<li>xsl:vendor=<xsl:value-of select="system-property('xsl:vendor')" /></li>
<li>xsl:vendor-url=<xsl:value-of select="system-property('xsl:vendor-url')" /></li>
<li>xsl:product-name=<xsl:value-of select="system-property('xsl:product-name')" /></li>
<li>xsl:product-version=<xsl:value-of select="system-property('xsl:product-version')" /></li>
<li>xsl:is-schema-aware=<xsl:value-of select="system-property('xsl:is-schema-aware')" /></li>
<li>xsl:supports-serialization=<xsl:value-of select="system-property('xsl:supports-serialization')" /></li>
<li>xsl:supports-backwards-compatibility=<xsl:value-of select="system-property('xsl:supports-backwards-compatibility')" /></li>
<li>msxsl:version=<xsl:value-of select="system-property('msxsl:version')" /></li>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个JSON字符串/对象.
{"list": [
{"name":"my Name","id":12,"type":"car owner"},
{"name":"my Name2","id":13,"type":"car owner2"},
{"name":"my Name4","id":14,"type":"car owner3"},
{"name":"my Name4","id":15,"type":"car owner5"}
]}
Run Code Online (Sandbox Code Playgroud)
我的应用程序中有一个过滤器框,当我在该框中键入一个名称时,我们必须过滤该对象并显示结果.
例如,如果用户输入"name"并点击搜索,那么我们必须在JSON对象中搜索全名并返回数组,就像MySQL搜索一样......
我的问题是用字符串过滤json对象并返回数组....
我正在尝试将以下Angular 1代码转换为Angular 2:
$http.jsonp('https://accounts.google.com/logout');
Run Code Online (Sandbox Code Playgroud)
它必须是JSONP请求才能跳过CORS策略问题.
JSONP和EasyXDM之间最好的长期选择是什么,允许http上的域与https(跨协议)上的同一域通信?
例如,我希望http://mywebsite.com与https://mywebsite.com对话,因为会话cookie仅通过https.我想在http网站上显示用户名,而不是通过http传输数据.
EasyXDM在安全性方面让我感到害怕,而JSONP在安全预防方面并不十分清楚.
我知道jsonp是一种绕过相同原始策略的技术.您基本上是在脚本标记中引用您的json服务器端点,因为脚本标记不受SO策略的约束.
我的问题是:假设服务器有一个服务于json的端点,服务器上是否需要进行任何修改以在客户端中使用jsonp?
我想不,但想确定......
为什么浏览器将相同的源策略应用于XMLHttpRequest?它对开发人员来说真的很不方便,但它似乎在实际阻止黑客方面做得很少.有解决方法,它们仍然可以包含来自外部源的javascript(JSONP背后的力量).
这似乎是网络中过时的"功能",它在很大程度上是相互关联的.
jsonp ×10
ajax ×4
json ×4
javascript ×3
jquery ×3
cross-domain ×2
security ×2
amazon ×1
angular ×1
asynchronous ×1
cors ×1
http ×1
php ×1
rest ×1
ria ×1
server-side ×1
typescript ×1
xml ×1
xslt ×1