JSONP无效的内容类型响应标头破坏了在Firefox上的执行

时间:2018-10-16 08:20:25

标签: javascript json jsonp content-type

我有一个JSONP调用,它返回以下响应有效负载:

Object.callback({
    "status":201,
    "results":{"status":"success","type":"token"}
})

带有内容类型响应标头 application / json 。很明显,以上响应不是有效的JSON,内容类型应为 application / javascript

  

RFC建议:

     
      
  • 如果响应为纯json rfc4627,请使用application / json
  •   
  • 如果响应是JavaScript(实际上就是JSONP是),请使用application / javascript-rfc4329
  •   

尽管在这种情况下可以容忍Chrome,但不能容忍Firefox。发出以下错误

SyntaxError: JSON.parse: unexpected character at line 2 column 8 of the JSON data

中断其余脚本执行。我正在使用最新的FF版本。

enter image description here 问题是我无法操纵内容类型响应标头。端点所有者很快有机会修复它的机率很小,因此我需要一种解决方法。

此js库发出请求(请参见第76行)https://github.com/payeezy/payeezy_js/blob/master/example/payeezy_intl_v5.2.js

和示例请求URL:

https://api-cert.payeezy.com/v1/securitytokens?apikey=JBGWWqLqvUZKHNidRYZnds4uAJ2Sqlz8&js_security_key=js-70e964a7abbc105e02e57fcec1c2207070e964a7abbc105e&callback=Payeezy.callback&auth=true&ta_token=NOIW&type=FDToken&credit_card.type=Visa&credit_card.cardholder_name=John%20Doe&credit_card.card_number=4111111111111111&credit_card.exp_date=0424&credit_card.cvv=123

有办法吗?

0 个答案:

没有答案