I realized that the component that I was adding to the URL was not being encoded. This led to a space being included in the API call. For whatever reason the API call succeeded in returning JSONP, but I was still getting an error.
I switched the URL in my service to encode the scientific name before making the api call:
angular.module('atRiskApp.services')
.factory('FederalRegister', [ '$http', function ($http) {
var searchRegisterByName = function ( sciName ) {
var url = 'http://www.federalregister.gov/api/v1/articles.json?per_page=20&order=newest&conditions%5Bterm%5D=' + encodeURIComponent(sciName) + '&callback=JSON_CALLBACK';
return $http.jsonp( url );
};
return {
searchRegisterByName: searchRegisterByName
}
}]);
The key bit being encodeURIComponent(sciName)
in the url declaration.