代码之家  ›  专栏  ›  技术社区  ›  Dmitriy

使用react native获取jsonp

  •  0
  • Dmitriy  · 技术社区  · 6 年前

    我正在尝试使用这个API https://www.petfinder.com/developers/api-docs 与react native一起。我遇到的问题是它返回jsonp而不是json,所以使用fetch会在json错误中给我一个意外的标记。我曾经尝试过使用类似fetch jsonp的库,但是这在react native中不起作用,因为没有文档(与jquery相同),我有什么想法可以用react native获取jsonp数据吗?

    App.JS

    class Home extends Component {
      componentDidMount() {
        fetch(
          `http://api.petfinder.com/pet.find?format=json&key=${API_KEY}&animal=dog&location=84070&callback=callback`
        )
          .then(res => res.json())
          .then(responseText => console.log(responseText))
          .catch(err => console.log(err));
      }
      render() {
        const width = Dimensions.get("window").width;
        const height = Dimensions.get("window").height;
    
        return (
          <View>
            <Header
              backgroundColor={darkBlue}
              leftComponent={{ icon: "menu", color: "#fff" }}
              centerComponent={<HeaderTextComponent />}
              rightComponent={{ icon: "home", color: "#fff" }}
            />
          </View>
        );
      }
    }
    
    export default Home;
    
    1 回复  |  直到 5 年前
        1
  •  0
  •   Mihai Manole Blank    5 年前

    JSONP只能在浏览器中工作,不能在移动设备上工作。不要试图使用fetch jsonp或任何jsonp库,因为它们依赖document.createElement(“script”)来获得跨域支持。在手机上,跨域是没有意义的。

    正如我在petfinder.com上看到的,只有在提供回调时才使用jsonp。如果您不这样做,我希望得到一个正常的JSON响应。